具有独立属性的类别名

时间:2015-09-07 20:43:24

标签: php

我正在尝试创建一个类的实例,但是我很难让它们拥有自己独立的属性值。

class A{
    public static $value = NULL;
}

for ($i=0; $i <= 1; $i++) { 
    class_alias('A', 'A'.$i);
}

A0::$value = 1;
echo A0::$value; // echo 1
A1::$value = 9;
echo A1::$value; // echo 9
echo A0::$value; // echo 9

此处,A0::$value应回显值'1'。

我知道它们是别名所以唯一改变的是它们被称为的名称。

我正在处理的class有很多静态methodsproperties,我需要能够从这个A0::method()中调用它。代码所以我不能只在这样的变量中创建类的实例:

$A1 = new A();
$A2 = new A();

如何创建一个类的实例,我可以在不使用变量的情况下静态调用它,并使其具有独立于其他别名的属性值?

1 个答案:

答案 0 :(得分:3)

简单回答:你做不到。

静态成员“绑定”到给定的类,而不是对象。因此,对它们执行的每个更改都将显示在从您的类创建的每个别名/对象上。

您必须重新考虑您的代码。