I'll be grateful (and wiser at the same time ;) ) if anyone can explain me below behavior:
We've got a class.
class Test {
public $id;
private $name;
protected $color;
}
And we've got ReflectionProperty constructor behavior that I do not fully understand.
Working one first:
function check() {
$class = new Test();
$ref = new ReflectionObject($class);
$pros = $ref->getProperties();
foreach ($pros as $pro) {
false && $pro = new ReflectionProperty();
print_r($pro);
}
}
This will give correct output of:
ReflectionProperty Object
(
[name] => id
[class] => Test
)
ReflectionProperty Object
(
[name] => name
[class] => Test
)
ReflectionProperty Object
(
[name] => color
[class] => Test
)
Now: if I remove "false" from this line:
false && $pro = new ReflectionProperty();
the output will be:
PHP Fatal error: Uncaught ArgumentCountError: ReflectionProperty::__construct() expects exactly 2 parameters, 0 given
ReflectionProperty::__construct() takes ($class, $name)
The question therefore is: why 'false' even works in the first place?
Aucun commentaire:
Enregistrer un commentaire