PHP依赖注入问题


PHP Dependency Injection issue

伙计们,我正在努力学习依赖注入,我写了这样的代码:

class User {
    public $id;
    public function __construct($id) {
        $this->id = $id;
    }
    public function getName() {
        return 'Alex';
    }
}
class Article {
    public $author;
    public function __construct(User $author) {
        $this->author = $author;
    }
    public function getAuthorName() {
        return $this->author->getName();
    }
}
$news = new Article(10);
echo $news->getAuthorName();

然而,我得到了WSOD。我做错了什么?

您指定了错误的实例。使用下方的代码

<?php
class User {
    public $id;
    public function __construct($id) {
        $this->id = $id;
    }
    public function getName() {
        return 'Alex';
    }
}
class Article {
    public $author;
    public function __construct(User $author) {
        $this->author = $author;
    }
    public function getAuthorName() {
        return $this->author->getName();
    }
}
$news = new Article(new  User(10));
echo $news->getAuthorName(); //Outputs Alex

希望这能帮助您