程序员阿木木
2017-09-28 17:01
我有个问题,突过trait A 有个属性$a,trait B 也有属性是$a,如果同时use A,b;就会报错,有解决方案吗?
官方文档给出的解释
解决冲突
<?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定义属性时尽量使用不同的属性名称
解决方案:修改属性名称或者相同属性的值必须完全相似
怕是需要命名空间吧
PHP-面向对象
29004 学习 · 38 问题
相似问题