存储对其他类对象的引用


Storing reference to other class object

我来自Java背景,正在尝试php。现在我正在尝试将一个对象传递给类的构造函数,并尝试在类中存储对它的引用,并在对此调用进行函数调用时从存储的引用中执行一个方法。

$phpBook = new Book("Php Book", 500);
$vihaan = new Person("Vihaan", $phpBook);

人.php

class Person
{
    private $_book;
    private $_name;
    public function __construct($name, $book)
    {
        $_this->_book = $book;
        $_this->_name = $name;
    }

在这一行

    $_this->_book = $book;

我收到警告。

PHP Warning:  Creating default object from empty value in /home/vihaan/workspace/AdapterPattern1/Person.php on line 12

并且此函数调用永远不会输入 if 块,因为 $_book 似乎为空。

public function openBook($pageNumber = 0)
{
    if(!empty($_book))
    {
        $_book->open($pageNumber);
    }
}

$this,而不是$_this

$this->_book = $book;
$this->_name = $name;