<?php
class A {
private $messageA = "A::bar()\n";
public function bar() {
print($this->messageA);
C::f();
}
}
class B extends A {
public function foo() {
print("B::foo()\n");
A::bar();
}
}
class C extends B {
private $messageC = "C::f()\n";
public function f() {
print($this->messageC);
}
}
$obj = new B;
$obj->foo();
B::foo()
A::bar()
Fatal error: Uncaught Error: Non-static method C::f() cannot be called statically in /in/sY5AL:7
Stack trace:
#0 /in/sY5AL(14): A->bar()
#1 /in/sY5AL(26): B->foo()
#2 {main}
thrown in /in/sY5AL on line 7
Process exited with code 255.
B::foo()
A::bar()
Deprecated: Non-static method C::f() should not be called statically in /in/sY5AL on line 7
Fatal error: Uncaught Error: Using $this when not in object context in /in/sY5AL:21
Stack trace:
#0 /in/sY5AL(7): C::f()
#1 /in/sY5AL(14): A->bar()
#2 /in/sY5AL(26): B->foo()
#3 {main}
thrown in /in/sY5AL on line 21
Process exited with code 255.
Output for 7.3.32 - 7.3.33
B::foo()
A::bar()
Fatal error: Uncaught Error: Using $this when not in object context in /in/sY5AL:21
Stack trace:
#0 /in/sY5AL(7): C::f()
#1 /in/sY5AL(14): A->bar()
#2 /in/sY5AL(26): B->foo()
#3 {main}
thrown in /in/sY5AL on line 21
Process exited with code 255.
Output for 5.6.8 - 5.6.28
B::foo()
A::bar()
Deprecated: Non-static method C::f() should not be called statically, assuming $this from incompatible context in /in/sY5AL on line 7
Notice: Undefined property: B::$messageC in /in/sY5AL on line 21
B::foo()
A::bar()
Strict Standards: Non-static method C::f() should not be called statically, assuming $this from incompatible context in /in/sY5AL on line 7
Notice: Undefined property: B::$messageC in /in/sY5AL on line 21
Output for 5.1.3 - 5.1.6, 5.2.0 - 5.2.5
B::foo()
A::bar()
Strict Standards: Non-static method C::f() should not be called statically, assuming $this from incompatible context in /in/sY5AL on line 7
Notice: Undefined property: B::$messageC in /in/sY5AL on line 21
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.2
B::foo()
A::bar()
Notice: Undefined property: B::$messageC in /in/sY5AL on line 21
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/sY5AL 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/sY5AL 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/sY5AL on line 4
Process exited with code 255.