<?php
class A {
protected $_prot;
public function __toString() {
return (string) $this->_prot;
}
}
class C extends A {
protected $_c = __CLASS__;
}
class B extends A {
static function test(A $a) {
$a->_prot = 5;
if (isset($a->_c)) {
echo '_c:', $a->_c, " ";
}
echo "_a:", $a, "\n";
}
}
$a = new A;
$b = new B;
$c = new C;
B::test($a);
B::test($b);
B::test($c);
_a:5
_a:5
Fatal error: Cannot access protected property C::$_prot in /in/NLf2L on line 16
Process exited with code 255.
Output for 5.0.0 - 5.0.4
Fatal error: Cannot access protected property A::$_prot in /in/NLf2L on line 16
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/NLf2L on line 4
Process exited with code 255.
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/NLf2L on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/NLf2L on line 4
Process exited with code 255.