php静的呼び出しと動的呼び出し

1070 ワード

使用::使用方法は静的方法とみなされ、静的方法では$thisは使用できません.静的方法の呼び出しにはインスタンス化は必要ありませんが、$thisはインスタンス化後に現れるので、静的方法は一般的な関数に似ています.
静的方法はメモリに移植することである.NEWのメモリ容量も少ない.速度が比較的速いほうが効率がいいtukiz 29
例:<?php
class A
{
function foo()
{
if (isset($this)) {
echo '$this is defined (';
echo get_class($this);
echo ")
";
} else {
echo "\$this is not defined.
";
}
}
}

class B
{
function bar()
{
A::foo();
//parent::foo();
}
}

$a = new A();
$a->foo();// , new
A::foo();// , , new
$b = new B();
$b->bar();// $b ,
A::foo(); B::bar();
?>
、 、 , (new) , ; , 。 , , class A;class B ,$a = new A();$b = new B();$a and $b 。 :
擬似変数
$thisは通常定義されていません.メソッドが静的に呼び出されている場合は.しかし、これは厳密な規定ではありません.ある方法が別のオブジェクトから静的に呼び出されると、
$thisが定義されます.このとき
$thisの値は、呼び出しを発行するオブジェクトです.