<?php
class InCommon {
private $baz = 'foo';
public function out($pref){
echo "\n".$pref.'::$baz = '.$this->baz;
}
}
class Foo extends InCommon {}
class Bar extends InCommon {
public function peek($target, $label){
echo "\n".'peek @'.$label.'::$baz = '.$target->baz; // we see the effects of our modification
}
public function mess($target){
$target->baz = 'cats'; // "private" isn't private?
}
}
$foo = new Foo();
$bar = new Bar();
$bar->mess($foo); // why does this NOT throw an error about modifying a private?
$bar->peek($foo, 'Foo'); // this is cats... so I access a private (again, no error), and it has the value I changed it to
$foo->out('Foo'); // echoing its own $baz, should be "cats", but it isn't
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/9pl3D on line 24
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/9pl3D on line 3
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/9pl3D on line 3
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/9pl3D on line 3
Process exited with code 255.