staticは、staticobjectまたはstatic変数を定義することです。この記事の関連する例を読んだ後、staticで定義された変数またはクラスメソッドの特性を理解します。
1.$object = new Class() を作成し、変数/メソッドがアクセス可能な場合は、「->」を使用して $object->attribute/function を呼び出します。 2. 静的か非静的かに関係なく、クラスのメソッド/変数: class::attribute/function を直接呼び出します。ただし、前提条件があります: A. 変数の場合、その変数にアクセスできる必要があります。
B. メソッドの場合、アクセス可能であることに加えて、次の条件も満たす必要があります。
b1) 静的メソッドの場合、特別な条件はありません。
b2) 非静的メソッドの場合。 、メソッド内で $this が使用されていない、つまり非静的変数/メソッドの呼び出しがないように変更する必要があります。もちろん、静的変数/メソッドの呼び出しには問題ありません。
次に、$object->… の使用と class::…:
コンストラクター
を実行する必要があります。 2. class::... を使用して、コンストラクターを実行せずに静的メソッド/変数を呼び出してオブジェクトを作成します。 3. class::... を使用して、コンストラクターを実行せずに非静的メソッド/変数を呼び出します。
すると、2と3は同じなので、静的メソッド/変数の存在意義は何でしょうか?
クラス メンバーまたはメソッドを static として宣言すると、クラスをインスタンス化せずに直接アクセスできます。オブジェクトを介して静的メンバー (静的メソッドを除く) にアクセスすることはできません。静的メンバーはクラスに属し、どのオブジェクト インスタンスにも属しませんが、クラスのオブジェクト インスタンスは共有できます。
class Child{
public $name;
//这里定义并初始化一个静态变量 $nums
public static $nums=0;
function construct($name){
$this->name=$name;
}
public function join_game(){
//self::$nums 使用静态变量
self::$nums+=1;
echo $this->name."加入堆雪人游戏";
}
}
//创建三个小孩
$child1=new Child("李逵");
$child1->join_game();
$child2=new Child("张飞");
$child2->join_game();
$child3=new Child("唐僧");
$child3->join_game();
//看看有多少人玩游戏
echo "<br/> 有这".Child::$nums;
以上がPHPでの静的変数の基本的な使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。