1.2.1277. Unreachable Class Constant¶
Class constants may be unreachable due to visibility configuration.
Since PHP 7.1, class constants support visibility. Their usage may be restricted to the current class, or private
, to classes that extends or are extended by the current class, or protected
. They may also be public
, just like it was before.
<?php
class Foo{
private const PRIVATE = 1;
const PUBLIC = 3;
}
// PHP 7.1- and older
echo Foo::PUBLIC;
// This is not accessible
echo Foo::PRIVATE;
?>
See also Class Constant and PHP RFC: Support Class Constant Visibility.
1.2.1277.2. Connex PHP features¶
1.2.1277.2.1. Suggestions¶
Make the class constant protected, when the call to the constant is inside a related class.
Create another constant, that may be accessible
Make the class constant public
1.2.1277.2.2. Specs¶
Short name |
Classes/UnreachableConstant |
Rulesets |
|
Exakat since |
1.5.4 |
PHP Version |
All |
Severity |
Major |
Time To Fix |
Slow (1 hour) |
Precision |
Very high |
Available in |