<?php
class A {
private static $_count = 0;
private $_number;
function __construct() {
$this->_number = ++static::$_count;
}
public function __toString(){
return static::$_count . ' | ' . $this->_number . "\n";
}
public function __invoke(){
return $this->_number;
}
}
class B {
private $_status = C::newInstance;
public function show (){echo $this->_status;}
}
class C {
private $message;
public function __construct($message){
$this->message = $message;
}
public static function newInstance($message){
return new C($message);
}
public function __toString(){
return $this->message . " | ";
}
}
$_b = new B();
$_b->show();
$a = new A();
$b = new A();
$c = new A();
$d = new A();
echo $a, $b, $c, $d;
echo $a(), $b(), $c(), $d();
Fatal error: Uncaught Error: Undefined constant C::newInstance in /in/9KiD0:19
Stack trace:
#0 /in/9KiD0(39): [constant expression]()
#1 {main}
thrown in /in/9KiD0 on line 19
Process exited with code 255.
Output for 8.2.0 - 8.2.18
Fatal error: Uncaught Error: Undefined constant C::newInstance in /in/9KiD0:19
Stack trace:
#0 {main}
thrown in /in/9KiD0 on line 19
Process exited with code 255.
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28
Fatal error: Uncaught Error: Undefined constant C::newInstance in /in/9KiD0:39
Stack trace:
#0 {main}
thrown in /in/9KiD0 on line 39
Process exited with code 255.
Fatal error: Uncaught Error: Undefined class constant 'C::newInstance' in /in/9KiD0:39
Stack trace:
#0 {main}
thrown in /in/9KiD0 on line 39
Process exited with code 255.
Fatal error: Undefined class constant 'C::newInstance' in /in/9KiD0 on line 39
Process exited with code 255.
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17
Parse error: syntax error, unexpected T_STATIC, expecting T_STRING or T_VARIABLE or '$' in /in/9KiD0 on line 6
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_STATIC, expecting T_STRING or T_VARIABLE or '$' in /in/9KiD0 on line 6
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/9KiD0 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/9KiD0 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/9KiD0 on line 3
Process exited with code 255.