ホームページ  >  記事  >  バックエンド開発  >  PHP では、static キーワードを使用して静的プロパティと静的メソッドを宣言します。サンプル コードの共有。

PHP では、static キーワードを使用して静的プロパティと静的メソッドを宣言します。サンプル コードの共有。

黄舟
黄舟オリジナル
2017-07-02 11:59:011819ブラウズ

PHP は、static キーワードを使用して、静的プロパティと静的メソッドを宣言します

PHP では、static キーワードによって変更されたメンバー プロパティとメンバー メソッドを、静的プロパティと静的メソッドと呼びます。

静的プロパティと静的メソッドは、クラスによってインスタンス化されずに直接使用できます。

1. 静的属性

静的属性は、クラス自体に属し、クラスのインスタンスには属しません。これはクラスに格納されているグローバル変数と同等であり、クラスを通じてどこからでもアクセスできます。

クラスがインスタンス化されているオブジェクトを通じて静的プロパティにアクセスすることはできません。

静的プロパティへのアクセスの構文形式は次のとおりです:

类名称::$静态属性名称

シンボル「::」は範囲解析演算子と呼ばれ、静的プロパティ、静的メソッド、定数にアクセスするために使用され、オーバーライドするためにも使用されますクラスとメソッドのメンバー。

クラス内のメンバーメソッドの静的プロパティにアクセスするには、静的プロパティの名前の前に演算子「self::」を追加します。クラス名::のみを使用すると、クラス外からクラス内の静的プロパティを呼び出すことができます。

注:

静的プロパティには、-> 演算子を使用してオブジェクトからアクセスできません。

他のすべての PHP 静的変数と同様に、静的プロパティは、ではなく、リテラルまたは定数にのみ初期化できます。したがって、静的プロパティは整数または配列に初期化できますが、別の変数や関数の戻り値に初期化したり、オブジェクトを指すことはできません。

2. 静的メソッド

静的メソッドは、static キーワードによって変更されるメンバー メソッドです。オブジェクトによる制限がないため、クラスをインスタンス化せずにクラス内の静的メソッドを直接参照できます。 静的メソッドには、インスタンス化されたクラスのオブジェクトを通じてアクセスできます。

静的メソッド参照の構文形式は以下の通りです。

类名称::静态方法名称([参数1,参数2,...])

同様に、静的メソッド名の前に演算子「self::」を追加することで、クラス内のメンバメソッド内で静的メソッドを参照することができます。クラス名::のみを使用すると、クラス外からクラス内の静的メソッドを呼び出すことができます。

注:

静的メソッドでは、静的変数のみを呼び出すことができます。通常のメソッドは静的変数を呼び出すことはできません。

非静的メソッドを静的に呼び出すと、E_STRICT レベルのエラーが発生します。

静的メソッドはオブジェクトを通じて呼び出す必要がないため、疑似変数 $this は静的メソッドでは使用できません。

ヒント

静的メンバーを使用すると、オブジェクトをインスタンス化する必要がなくなるだけでなく、オブジェクトが破棄された後も、変更された静的データを次回使用できるように保存する機能もあります。

PHP 4 と互換性を保つために、静的プロパティと静的メソッドは、保護またはプライベートとして指定されていない場合、デフォルトでパブリックになります。

PHP 5.3.0 以降、変数を使用してクラスを動的に呼び出すことができますが、変数の値をキーワード self、parent、static にすることはできません。

説明

静的メンバーはオブジェクトをインスタンス化する必要がありません。クラスが初めてロードされるときにメモリ領域が割り当てられるため、静的メンバーを直接呼び出す方が高速です。ただし、宣言された静的メンバーが多すぎると、スペースが常に占有されることになり、システムの機能に影響を与えます。このスケールは練習の積み重ねでしか掴めない!


<?php
class website{  static $num="0";                         // 定义静态变量
  public function visit(){                 // 定义visit方法
    echo "您是第".self::$num."位访客!";   // 输出静态变量信息
    self::$num++;                          // 静态变量做自增运算
  }
}

echo &#39;第一次实例化调用:<br />&#39;;
$website=new website();                    // 实例化对象
$website->visit();                         // 调用对象$website的visit()方法
$website->visit();
$website->visit();

echo &#39;<br />第二次实例化调用:<br />&#39;;
$website2=new website();                   // 改变对象句柄实例化对象
$website2->visit();
$website2->visit();
$website2->visit();
?>

static キーワードを使用してブラウザーで静的プロパティと静的メソッドを宣言した PHP の表示効果を表示します。下の写真に示すように:

以上がPHP では、static キーワードを使用して静的プロパティと静的メソッドを宣言します。サンプル コードの共有。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。