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:: 是在什么地方用?
展开
 我来答
abccccaf
2018-04-21 · TA获得超过845个赞
知道小有建树答主
回答量:912
采纳率:86%
帮助的人:255万
展开全部

这个要分的, 变量有两种,还有一种是静态变量。

如果像你说的访问对象中的变量,就必须使用$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;
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式