【发布时间】:2011-01-13 07:57:41
【问题描述】:
我可以在静态方法中使用非静态成员吗?
例如。
$this->nonStaticProperty
$this->nonStaticMethod()
反之亦然,也就是说在非静态方法中使用静态成员?
【问题讨论】:
我可以在静态方法中使用非静态成员吗?
例如。
$this->nonStaticProperty
$this->nonStaticMethod()
反之亦然,也就是说在非静态方法中使用静态成员?
【问题讨论】:
来自http://php.net/manual/en/language.oop5.static.php
将类属性或方法声明为静态使它们无需实例化即可访问。声明为静态的属性不能被实例化的类对象访问(尽管静态方法可以)。
您不能在静态函数中使用非静态成员,因为它们超出了函数的范围。但是你可以在非静态函数中使用静态成员。
【讨论】:
由于静态成员没有实例,它不能调用实例方法(除非您在该方法中创建实例)。
【讨论】:
并非如此,因为您不能在静态上下文中使用 $this。
【讨论】:
class foo {
public static function bar()
{
echo "bar calling\n";
}
}
$ff = new foo();
echo $ff->bar();
echo foo::bar();
在这里查看:http://sandbox.onlinephpfunctions.com/code/48b9540c8d897f46dcd8ea13595950fa78fa96e5
【讨论】: