在PHP中如何在类中不使用类名访问静态变量?

3

有没有一种方法可以在不使用类前缀的情况下访问PHP类的静态变量?

例如:

class A {

   protected static $x = "blahblah";

   public static function p() {

       print(A::$x); // <= Is there no way to omit A:: ???

   }

}

我明白,此时的$x可能是一个未初始化的本地变量,但是能够声明/设置解释器应该将$x解析为先前声明的成员在这些情况下是非常有意义的。在我的看法中,到处输入类前缀是一个重大错误。


1
self::$x 在类内部起作用。 - Mark Baker
1个回答

5

如果你在同一个类中使用该方法,你可以使用self::或static::。

例如:

class A {

   protected static $x = "blahblah";

   public static function p() {

       print(self::$x);

   }

}

谢谢您的回答,不过我的意思是想跳过每次输入前缀的步骤... :) - Szidor
self::和static::可以避免在更改类名时需要重构类内变量的每个引用,但我认为没有一种方法可以引用静态变量而不以某种方式指定类(无论是类名还是self::或static::)。 - Dragory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接