vasa_c
Новичок
Подскажите, пожалуйста, это пыхобаг или я невдупляю во что-то фундаментальное.
Есть два кода:
Первый работает, как и предполагается, второй валится с "PHP Fatal error: ParentClass and TFlag define the same property ($flag) in the composition of ChildClass. However, the definition differs and is considered incompatible."
С методами же всё работает нормально:
Есть два кода:
PHP:
abstract class ParentClass
{
public $flag = true;
}
class ChildClass extends ParentClass
{
public $flag = false;
}
var_dump((new ChildClass())->flag); // false
PHP:
abstract class ParentClass
{
public $flag = true;
}
trait TFlag
{
public $flag = false;
}
class ChildClass extends ParentClass
{
use TFlag;
}
С методами же всё работает нормально:
PHP:
abstract class ParentClass
{
public function flag(): bool
{
return true;
}
}
trait TFlag
{
public function flag(): bool
{
return false;
}
}
class ChildClass extends ParentClass
{
use TFlag;
}
var_dump((new ChildClass())->flag()); // false