为了账号安全,请及时绑定邮箱和手机立即绑定

trait成员属性问题

我有个问题,突过trait A 有个属性$a,trait B 也有属性是$a,如果同时use A,b;就会报错,有解决方案吗?

正在回答

2 回答

官方文档给出的解释

解决冲突

<?php
trait PropertiesTrait {
    public $same = true;
    public $different = false;
}

class PropertiesExample {
    use PropertiesTrait;
    public $same = true; // PHP 7.0.0 后没问题,之前版本是 E_STRICT 提醒
    public $different = true; // 致命错误
}

允许trait或者class中有相同的属性,但必须是值相同.PHP7.0之前的版本会有E_STRICT 提醒,PHP7.0后不会有提醒

一旦多个trait或者class有相同属性但值不相同PHP均会报出致命错误.

在使用trait定义属性时尽量使用不同的属性名称

解决方案:修改属性名称或者相同属性的值必须完全相似

0 回复 有任何疑惑可以回复我~

怕是需要命名空间吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP-面向对象
  • 参与学习       29004    人
  • 解答问题       38    个

从面相过程到面向对象,带你深入理解面向对象编程思想,体验编程的奥妙!

进入课程

trait成员属性问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信