有人可以解释一下用PHP编写的以下两个代码片段的区别吗?
一个使用$this->任务,另一个使用$tasks来存储对象.
class Foo
{
public $tasks;
function doStuff()
{
$this->tasks = new Tasks();
$this->tasks->test();
}
}
VS
class Foo
{
public $tasks;
function doStuff()
{
$tasks = new Tasks();
$tasks->test();
}
}
解决方法:
当不使用$this时,您正在使用一个局部变量,当函数doStuff完成时它将消失.当你使用$this时,当一个类Foo的实例消失时,该变量将消失.
方法1
$foo = new Foo();
$foo->doStuff();
echo $foo->tasks -- tasks will be a new instance of Tasks
方法2
$foo = new Foo();
$foo->doStuff();
echo $foo->tasks -- tasks will be NULL
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。