Tom*_*Tom 1 php this self keyword
我对这两个关键字以及在PHP5中使用它们的方式感到困惑.我认为"this"用于实例对象(不是静态的),而"self"是指对象本身,而不是它的实例,因此在静态对象中使用.对?
现在,我相信在类的静态方法中正确使用它来调用另一个静态变量/方法如下:
self::doSomething();
self::$testVar;
Run Code Online (Sandbox Code Playgroud)
确实如此?
但是,以下似乎也是可能的:
$self->testVar;
Run Code Online (Sandbox Code Playgroud)
然而,$ testVar是静态的.这是为什么?
另外,为什么$有时候会在自我面前使用,有时也不会使用"和"这个关键字的问题?
你是对的,self是静态自引用,而$是实例化的.self和$这似乎在任何地方都可以工作,但请考虑这个:
class A
{
public static function foo()
{
$this->bar();
}
public static function bar()
{
echo 'foobar!';
}
}
A::foo(); // Fatal error: Using $this when not in object context
Run Code Online (Sandbox Code Playgroud)
这会导致致命错误,因为静态调用了foo().最好花一些时间并适当地使用它们,而不是总是使用其中一种.
| 归档时间: |
|
| 查看次数: |
6061 次 |
| 最近记录: |