<?php
class A {}
class B {}
class C {}
class D
{
public function __construct(A $a, B $b, C $c)
{
// ...
}
public function doSomething()
{
return 'Did something with ' . $this->a . ', ' . $this->b . ', ' . $this->c;
}
}
class D_Proxy extends D
{
private $serviceLocator;
private $original;
public function __construct(ServiceLocator $serviceLocator)
{
$this->serviceLocator = $serviceLocator;
}
private function initialize()
{
$this->initialized = true;
$this->original = $this->serviceLocator->get('D');
}
public function doSomething()
{
if ( ! $this->initialized) {
$this->initialize();
}
return $this->original->doSomething();
}
}
class HelloWorld
{
public function __construct(D $d)
{
// ...
}
public function sayHello()
{
return 'Hello World';
}
public function doSomethingWithD()
{
return $this->d->doSomething();
}
}
$hello = HelloWorld();
return $hello;
Fatal error: Uncaught Error: Call to undefined function HelloWorld() in /in/KiqEk:65
Stack trace:
#0 {main}
thrown in /in/KiqEk on line 65
Process exited with code 255.
Fatal error: Call to undefined function HelloWorld() in /in/KiqEk on line 65
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/KiqEk on line 11
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/KiqEk on line 11
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/KiqEk on line 11
Process exited with code 255.