<?php
class Foo
{
public function sing()
{
var_dump('Do re mi!');
}
public function dance()
{
var_dump('Cha cha cha!');
}
}
function gimmeFoo(Foo $foo)
{
$foo->sing();
$foo->dance();
}
$gimmeWhat = new ReflectionFunction('gimmeFoo');
$class = $gimmeWhat->getParameters()[0]->getClass();
$methods = $class->getMethods();
$evil = "
class Fake extends $class->name
{
public function idoeverything() {
var_dump('Just kidding!');
}
";
foreach ($methods as $method) {
$evil .= "public function $method->name() {\$this->idoeverything();}";
}
$evil .= "}";
eval($evil);
$fake = new Fake;
gimmeFoo($fake);
Parse error: syntax error, unexpected '[' in /in/uMXpl on line 23
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected '[' in /in/uMXpl on line 23
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/uMXpl on line 5
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/uMXpl on line 5
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/uMXpl on line 5
Process exited with code 255.