以下是静态方法和非静态方法的php类代码示例。
示例 1:
class A{
//None Static method
function foo(){
if (isset($this)) {
echo '$this is defined (';
echo get_class($this);
echo ")<br>";
} else {
echo "\$this is not defined.<br>";
}
}
}
$a = new A();
$a->foo();
A::foo();
//result
$this is defined (A)
$this is not defined.
示例 2:
class A{
//Static Method
static function foo(){
if (isset($this)) {
echo '$this is defined (';
echo get_class($this);
echo ")<br>\n";
} else {
echo "\$this is not defined.<br>\n";
}
}
}
$a = new A();
$a->foo();
A::foo();
//result
$this is not defined.
$this is not defined.
我试图弄清楚这两个类之间有什么区别。
正如我们在非静态方法的结果中看到的那样,定义了“$this”。
但另一方面,即使它们都被实例化,静态方法的结果也没有定义。
我想知道为什么它们都有不同的结果,因为它们都被实例化了?
请您告诉我这些代码发生了什么。