php重写父类私有变量,php – 是否有可能获得父类的重写NON静态成员变量的值?...

标签:php

是否有可能获得父类的重写NON静态成员变量的值?

我知道要获取STATIC成员变量的值,您使用self :: $var1或ClassName :: $var1,但是如何获得NON静态成员变量的值?

例如…

class One

{

public $var1 = 'old var';

}

class Two extends One

{

public $var1 = 'new var';

public function getOldVar()

{

//somehow get old var

}

}

非常感谢提前!

解决方法:

不.一旦你覆盖了非静态属性值,它就消失了.您不能像使用方法那样将parent :: syntax与非静态属性一起使用.

但是,使用static关键字可以利用PHP的后期静态绑定功能来访问静态父属性,因为静态值绑定到分配它们的类:

class Top

{

public static $prop = 'Parent';

}

class Child extends Top {

public static $prop = 'Child';

public static function getParentProp() {

return parent::$prop;

}

public static function getProp() {

return static::$prop;

}

}

echo Child::getParentProp(); // outputs "Parent"

echo Child::getProp(); // outputs "Child"

请注意,您不能使用子类中的静态属性覆盖非静态属性来实现您正在尝试的内容,因为PHP(以及所有其他脚本语言,我相信)使用相同的表来存储属性名称.这只是语言的限制.

标签:php

来源: https://codeday.me/bug/20190723/1513997.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值