是否可以声明一个对象并在整个班级中使用该对象?
我正在尝试的示例,下面不起作用:
Class food{
private $need;
public function __construct()
{
$this->$need = new Something();
}
public function some_function()
{
$this->$need->some_method();
}
}
每次尝试都以$need
为空值结束。
感觉我在这里遗漏了一些非常基本的东西......
PHP版本是5.3
更多信息
`$need = new Something($this->method) // this object has a callback `
这可能与它有关吗?
答案 0 :(得分:1)
您错过$this
,用于指代您正在使用的课程实例
Class food{
private $need;
public function __construct()
{
$this->need = new Something();
}
public function some_function()
{
$this->need->some_method();
}
}
答案 1 :(得分:0)
此代码有效,所以此代码与您的代码有何区别?我假设您实际上已经声明了Something
类,或者至少将其包含在您的代码中?
Class Something
{
public function __construct()
{
echo 'Something() got constructed'.PHP_EOL;
}
public function some_method()
{
echo 'Something().some_method() got run'.PHP_EOL;
}
}
Class food{
private $need;
public function __construct()
{
$this->need = new Something();
}
public function some_function()
{
$this->need->some_method();
}
}
$o = new food();
$o->some_function();
答案 2 :(得分:0)
通过传递回调网址vs $this->method