<?php
class Concrete5_Helper_Foo
{
public static function get()
{
return self::getFirstName();
}
public static function getFirstName()
{
echo "helper_foo";
}
}
class Foo extends Concrete5_Helper_Foo
{
public static function getFirstName()
{
echo "foo";
}
}
var_dump(get_class(Concrete5_Helper_Foo::get()));
var_dump(get_class(Foo::get()));
var_dump(get_class(Foo::get()->getFirstName()));
helper_foo
Fatal error: Uncaught TypeError: get_class(): Argument #1 ($object) must be of type object, null given in /in/TmNfW:26
Stack trace:
#0 {main}
thrown in /in/TmNfW on line 26
Process exited with code 255.
helper_foo
Warning: get_class() expects parameter 1 to be object, null given in /in/TmNfW on line 26
bool(false)
helper_foo
Warning: get_class() expects parameter 1 to be object, null given in /in/TmNfW on line 27
bool(false)
helper_foo
Fatal error: Uncaught Error: Call to a member function getFirstName() on null in /in/TmNfW:28
Stack trace:
#0 {main}
thrown in /in/TmNfW on line 28
Process exited with code 255.
Output for 7.0.0 - 7.0.33, 7.1.0 - 7.1.33
helper_foo
Warning: get_class() called without object from outside a class in /in/TmNfW on line 26
bool(false)
helper_foo
Warning: get_class() called without object from outside a class in /in/TmNfW on line 27
bool(false)
helper_foo
Fatal error: Uncaught Error: Call to a member function getFirstName() on null in /in/TmNfW:28
Stack trace:
#0 {main}
thrown in /in/TmNfW on line 28
Process exited with code 255.
Output for 5.6.0 - 5.6.40
helper_foo
Warning: get_class() called without object from outside a class in /in/TmNfW on line 26
bool(false)
helper_foo
Warning: get_class() called without object from outside a class in /in/TmNfW on line 27
bool(false)
helper_foo
Fatal error: Call to a member function getFirstName() on null in /in/TmNfW on line 28
Process exited with code 255.
helper_foo
Warning: get_class() called without object from outside a class in /in/TmNfW on line 26
bool(false)
helper_foo
Warning: get_class() called without object from outside a class in /in/TmNfW on line 27
bool(false)
helper_foo
Fatal error: Call to a member function getFirstName() on a non-object in /in/TmNfW on line 28
Process exited with code 255.
Output for 5.3.0
helper_foo
Warning: get_class() expects parameter 1 to be object, null given in /in/TmNfW on line 26
bool(false)
helper_foo
Warning: get_class() expects parameter 1 to be object, null given in /in/TmNfW on line 27
bool(false)
helper_foo
Fatal error: Call to a member function getFirstName() on a non-object in /in/TmNfW on line 28
Process exited with code 255.
helper_foobool(false)
helper_foobool(false)
helper_foo
Fatal error: Call to a member function getFirstName() on a non-object in /in/TmNfW on line 28
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/TmNfW on line 4
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/TmNfW on line 4
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/TmNfW on line 4
Process exited with code 255.