$这个变量在PHP
问题描述:
我刚开始熟悉PHP的面向对象功能,我想问你一些关于$this
变量的内容。首先,如果我使用的$this
关键字在一个类中没有定义的属性变量foo
,这是否意味着,使用下面的代码:
$this->foo = 5;
echo $this->foo;
将在对象上创建foo
财产运行时,就像在JavaScript中一样?这个属性的可见性是什么?
答
是的,这将创建foo
属性,其可见性将为public
(这是默认值)。
你可以很容易地测试:
<?php
class Foo {
public function setFoo($foo) {
$this->foo = $foo;
}
}
$f = new Foo();
$f->setFoo(5);
echo $f->foo;
将打印5没有任何错误。
答
是的,它当然会。
答
属性可以添加到任何对象,与其类无关。也可以写
$obj = new stdClass();
$obj->foo = 'bar';
我会推荐看看这个[page](http://stackoverflow.com/questions/151969/php-self-vs-this)。 – Aif 2009-12-06 13:37:55