如果A是一个类,你可以通过A :: $ strName直接访问它。
class A {
public static $strName = 'A is my name';
}
echo A::$strName; // outputs "A is my name"
更新:
根据你的数组内容,不管我喜欢将其定义为类对象还是类文字,都可能是一个因素。我区分这两个术语,
$objClasses = array(new A(), new B()); // class objects
$myClasses = array('A','B'); // class literals
如果你去了类文字方法,然后使用PHP5.2.8的foreach循环,我在使用scope resolution operator时给出了一个语法错误。
foreach ($myClasses as $class) {
echo $class::$strName;
//syntax error, unexpected '::', expecting ',' or ';'
}
所以我想到了使用类对象的方法,但我实际输出静态变量的唯一方法是使用一个对象的实例,并使用self关键字,
class A {
public static $strName = 'A is my name';
function getStatic() {
return self::$strName;
}
}
class B {
public static $strName = 'B is my name';
function getStatic() {
return self::$strName;
}
}
然后在迭代时调用该方法,
foreach($objClasses as $obj) {
echo $obj->getStatic();
}
那在那一点呢为什么要声明变量static?它破坏了访问变量的整个想法,而不需要实例化一个对象。
总之,一旦我们有更多的信息,你想做什么,我们可以继续提供更好的答案。