有可能为性状设置静态变量:
Trait Example
{
public static $var;
}
class X
{
use Example;
}
class Y
{
use Example;
}然而,问题是当更多的类想要使用这个特性时,我会得到一个致命的错误:
Example and X define the same property ($var) in the composition of Y. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed如何为特征本身定义这个静态变量?
发布于 2017-04-23 21:55:39
特征既可以定义静态成员,也可以定义静态方法。但是,您不能重新分配特性属性。
来自PHP手册http://php.net/traits
参见示例12冲突解决
如果特征定义属性,则类无法定义同名的属性,否则将发出错误。如果类定义兼容(相同的可见性和初始值)或要害错误,则为E_STRICT。
解决方案是重写类中的属性。
Trait Example
{
public static $var;
}
class X
{
use Example;
public static $var;
}
class Y
{
use Example;
public static $var;
}https://stackoverflow.com/questions/43576693
复制相似问题