如何在同一个类的静态方法中访问类的受保护变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在同一个类的静态方法中访问类的受保护变量?相关的知识,希望对你有一定的参考价值。

以下是场景:

class PopupsAdminSettingsPage extends AbstractAdminSubPage
{
    protected $menuTitle = 'Settings';

    public static function getMenuTitle()
    {
        /* I want to access $menuTitle property here ...
    }
}

我想访问静态函数$menuTitle中的getMenuTitle属性,以便我也可以访问Class PopupsAdminSettingsPage之外的受保护变量。

答案

你可以这样做:

public static function getMenuTitle(&$PopupsAdminSettingsPage)
{
  echo $PopupsAdminSettingsPage->menuTitle
}

但这并不意味着这样做是对的。您无法出于某种原因访问它

在静态方法上下文中没有$ this

所以这应该是您实施中的一个重要的红色标志

以上是关于如何在同一个类的静态方法中访问类的受保护变量?的主要内容,如果未能解决你的问题,请参考以下文章