微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用$this-> somevariable和somevariable在使用php存储新创建的对象时有什么区别

有人可以解释一下用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 举报,一经查实,本站将立刻删除。

相关推荐