3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php class cA { /** * Test property for using direct default value */ protected static $item = 'Foo'; /** * Test property for using indirect default value */ protected static $other = 'cA'; public static function method() { print self::$item."\r\n"; // It prints 'Foo' on everyway... :( print self::$other."\r\n"; // We just think that, this one prints 'cA' only, but... :) } public static function setOther($val) { self::$other = $val; // Set a value in this scope. } } class cB extends cA { /** * Test property with redefined default value */ protected static $item = 'mesh';protected static $other = 'ani'; public static function method_set($val1,$val2) { self::$other = $val1; self::$other = $val2; } } //cB::setOther('cB'); // It's cB::method()! cB::method(); // It's cA::method()!
Output for 5.0.4 - 5.0.5, 5.1.1 - 7.1.0
Foo cA
Output for 5.1.0
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/gUTP5 on line 43
Process exited with code 255.
Output for 5.0.0 - 5.0.3
Fatal error: Cannot redeclare property static protected cA::$item in class cB in /in/gUTP5 on line 40
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/gUTP5 on line 8
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/gUTP5 on line 8
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/gUTP5 on line 8
Process exited with code 255.