当前位置: 首页 > 知识库问答 >
问题:

在PHP中从静态方法访问私有

史昊焱
2023-03-14

为什么会这样?我的意思是,访问私有变量。

class Test {
    private $q = 0;
    public function __construct() {
        $this->q = 1;
    }
    public static function EpicConstruct() {
        $test = new self();
        $test->q = 2;
        return $test;
    }
}

$test = Test::EpicConstruct();

共有1个答案

翟淮晨
2023-03-14

因为您在正确的上下文中访问成员,即:定义私有成员的类。

 类似资料:
  • 我有一个关于静态方法访问的问题。我有一个类,其中有4个静态方法。如代码所示: } 我正在从下面的代码调用来自onLoadShipperDetailsListCtrl()的setSortingEnable()方法: } 因此,如果我从其他类调用setSortingEnabled()方法,我会认为它是公共的,而其他方法是私有的,但它会给我一个错误:Java . lang . nosuchmethode

  • 这将打印a.a=50 但是,如果我将更改为,那么我可以如何访问该变量呢?

  • 尝试创建静态函数可授予对属性 xdate 的访问权限,该属性已在构造函数中初始化(在 typescript 1.5.3 中)。 this.xdate可在所有其他实例方法中访问。它在静态方法中仍然不可访问。 在静态方法中,我是否可以让this.xdate访问? 以下是我的代码:- 任何指点都会有很大的帮助。(如果这是一个重复的问题,请事先道歉) /* UglyHack#1:由于静态方法甚至在对象实例

  • 我想知道是否有一种方法来验证和调用一个模拟,该模拟是为一个私有静态方法创建的,该私有静态方法是从一个被测试的公共静态方法调用的。 下面是我正在测试的公共静态方法 我已经使用powermokito对私有静态方法进行了如下嘲弄:

  • 可以用调用私有静态方法吗? 此代码引发异常: 如果我将方法的访问修饰符更改为,它就会工作。