php取父类里面的变量只能用$this吗?
classa{$ye="loveyou";}classbextendsa{publicfunctionsay(){echo$this->ye;echoa::$ye;ech...
class a
{
$ye="love you ";
}
class b extends a
{
public function say()
{
echo $this->ye;
echo a::$ye;
echo self::$ye;
}
}
请问 是不是 只能用 $this 获取 父类变量?
如果是的话,那么 self:: 和 a:: 是在什么地方用? 展开
{
$ye="love you ";
}
class b extends a
{
public function say()
{
echo $this->ye;
echo a::$ye;
echo self::$ye;
}
}
请问 是不是 只能用 $this 获取 父类变量?
如果是的话,那么 self:: 和 a:: 是在什么地方用? 展开
1个回答
展开全部
这个要分的, 变量有两种,还有一种是静态变量。
如果像你说的访问对象中的变量,就必须使用$this, 如果访问静态变量可以使用 [ :: ] (两个冒号)
你看:
class P {
protected $name = 'Zhang';
}
class C extends P {
function get() {
return $this -> name; // 获取本对象中的变量,如果没有则从父类中获取
}
}
如果获取静态变量就不能使用 this 了,因为静态方法中没有实例,可以通过你说的方式来获取
class P {
static $name = 'Zhang';
}
class C extends P {
static function get() {
return self::$name; // 获取本类中的name,如果没有从父类中获取
}
static function get2() {
return parent::$name; // 直接获取父类中的name 等价于: P::$name;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询