trait成员属性问题

来源:2-8 Trait关键字

程序员阿木木

2017-09-28 17:01

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

写回答 关注

2回答

  • Mr_郑
    2017-11-11 15:44:57

    官方文档给出的解释

    解决冲突

    <?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定义属性时尽量使用不同的属性名称

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

  • 一步一祈祷
    2017-09-28 21:24:07

    怕是需要命名空间吧

PHP-面向对象

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

29004 学习 · 38 问题

查看课程

相似问题