我有两个代码片段(关于static
关键字),我希望他们有相同的输出,但实际上输出是不同的。PHP的静态属性
问题是为什么?
片段1
class base
{
public static $var = 1;
}
class sub extends base
{
public static $var = 2;
}
echo base::$var; // Outputs 1
片段2
class base2
{
public static $var2 = 1;
}
class sub2 extends base2
{
}
sub2::$var2 = 2;
echo base2::$var2; // Outputs 2
感谢小费,刚刚更新 – nut 2013-02-18 05:30:10
我怀疑你是混淆了'const'的结果。在php中,'static'定义了一个独立于实例的属性。但它仍然可以改变。 – datasage 2013-02-18 05:31:15
@ user1970939,你究竟想要完成什么?输出是不同的,因为你删除了'public static $ var = 2;'。但你知道。那么真正的问题是什么? – Matthew 2013-02-18 05:47:48