首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php,静态变量只适用于特性本身,怎么做?

Php,静态变量只适用于特性本身,怎么做?
EN

Stack Overflow用户
提问于 2017-04-23 21:28:35
回答 1查看 4.1K关注 0票数 1

有可能为性状设置静态变量:

代码语言:javascript
复制
Trait Example
{
    public static $var;
}

class X
{
    use Example;
}

class Y
{
    use Example;
}

然而,问题是当更多的类想要使用这个特性时,我会得到一个致命的错误:

代码语言:javascript
复制
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

如何为特征本身定义这个静态变量?

EN

回答 1

Stack Overflow用户

发布于 2017-04-23 21:55:39

特征既可以定义静态成员,也可以定义静态方法。但是,您不能重新分配特性属性。

来自PHP手册http://php.net/traits

参见示例12冲突解决

如果特征定义属性,则类无法定义同名的属性,否则将发出错误。如果类定义兼容(相同的可见性和初始值)或要害错误,则为E_STRICT。

解决方案是重写类中的属性。

代码语言:javascript
复制
 Trait Example
{
    public static $var;
}

class X
{
    use Example;
    public static $var;
}

class Y
{
    use Example;
    public static $var;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43576693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档