Cannot redefine class constant¶
Description¶
It is only allowed to defined a constant once per class.
A constant with the same name may be defined in a parent or child class, or even in a trait: there are rules that allow PHP to select one of them, whenever there is a possible name conflict.
At the class, interface, trait level, the constants must all be distinct.
At the enumeration level, the naming conflict may arise between a case and a const: the error message is then the same.
This error applies to class constants, and there is a different error for global constants.
Example¶
<?php
class X {
const A = 1, A = 1;
}
enum E {
case B;
const B = 1;
}
?>
Solutions¶
Remove one of the constant.
Rename one of the constant.
Move one of the constant to a parent, trait or interface.