trait成员属性问题
我有个问题,突过trait A 有个属性$a,trait B 也有属性是$a,如果同时use A,b;就会报错,有解决方案吗?
我有个问题,突过trait A 有个属性$a,trait B 也有属性是$a,如果同时use A,b;就会报错,有解决方案吗?
2017-09-28
官方文档给出的解释
解决冲突
<?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定义属性时尽量使用不同的属性名称
解决方案:修改属性名称或者相同属性的值必须完全相似
举报