<?php
class Stat
{
public $var1='H';
public static $staticVar = 'Static var';
static function check()
{
echo $this->var1;
echo "<br />".self::$staticVar ."<br />";
self::$staticVar = 'Changed Static';
echo self::$staticVar."<br />";
}
function check2()
{
Stat::check();
echo $this->var1;
echo "b";
}
}
?>
我可以用它这样静态函数可以在php中访问非静态变量吗?
$a = new Stat();
$a->check2();
一个静态方法将如何知道它应该访问访问非静态属性的对象的实例?简单回答是不”。更详细的答案是,它应该发出一个错误“在静态上下文中使用$ this” –
如果它可以_can_,那么PHP比我想象的更加复杂。只有_instance method_应该能够访问_instance_变量。 – Alnitak
我相信这会引发错误。因为您无法从静态方法访问非静态属性。在C#中,你可以使属性为静态,并从静态方法访问静态属性,但正如我记得我不相信你可以在PHP中做到这一点?但我很高兴能够纠正这一点。 –