ホームページ  >  記事  >  バックエンド開発  >  PHPの静的プロパティと静的メソッドとは何ですか

PHPの静的プロパティと静的メソッドとは何ですか

青灯夜游
青灯夜游オリジナル
2022-01-07 18:38:483196ブラウズ

PHP では、static キーワードによって変更されたメンバー プロパティおよびメンバー メソッドを静的プロパティおよび静的メソッドと呼びます。静的プロパティおよび静的メソッドにアクセスするための構文は、「クラス名::$static プロパティ」および「クラス名」です。 ::staticmethod()」。

PHPの静的プロパティと静的メソッドとは何ですか

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

PHP では、static キーワードによって変更されますメンバー プロパティとメンバー メソッドは、静的プロパティと静的メソッドと呼ばれます。ここでは、これらを総称して静的メンバーと呼びます。クラス内の静的メンバーは、クラス内の一般的なメンバーとは異なります。静的メンバーはオブジェクトにインスタンス化されません。クラスをインスタンス化せずに、クラスを介して静的メンバーにアクセスできるとします。

クラス内で静的変数を宣言するのは簡単です。クラスの通常のメンバーの前に static キーワードを追加して、この通常のメンバーを静的メンバーに変えることができます。このようにして、クラスをインスタンス化せずに、クラス内のこれらの静的メンバーに直接アクセスできます。静的メンバーにアクセスするための構文形式は次のとおりです。

类名::$静态属性
类名::静态方法()

:: シンボルは範囲解決演算子と呼ばれ、静的メンバー、静的メソッド、および定数にアクセスするために使用されます。のクラスのメンバーとメソッドをオーバーライドするためにも使用されます。

クラス内のメンバー メソッドの静的プロパティにアクセスする場合は、静的プロパティの名前の前に演算子 self:: を追加するだけです。

次は、静的メンバーの定義を示す簡単な例です:

<?php
header("Content-type:text/html;charset=utf-8");
class Website {
	static public $name = &#39;PHP中文网<br>&#39;;
	public $title = &#39;PHP教程&#39;;
	public static function url() {
		echo self::$name;
		echo &#39;https://www.php.cn/<br>&#39;;
		echo $this -> title;
	}

}

Website::url();
?>

実行結果は次のとおりです:

PHPの静的プロパティと静的メソッドとは何ですか

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

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

[例] 静的変数 $num を宣言し、メソッドを宣言し、メソッド内で静的変数を呼び出し、変数の値に 1 を加算し、クラス内でオブジェクトをインスタンス化し、最後にメソッドを呼び出します。クラスメソッド。

<?php
header("Content-type:text/html;charset=utf-8");
class Website {
	static public $num = 0;
	public function add() {
		echo &#39;$num 的值为:&#39; . self::$num;
		self::$num++;
	}

}

$num1 = new Website();
$num1 -> add();
echo &#39;<br>&#39;;
$num2 = new Website();
$num2 -> add();
?>

実行結果は次のとおりです:

PHPの静的プロパティと静的メソッドとは何ですか

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

#注:

    #サブクラスは親クラスの静的メソッドをオーバーライドできます。
  • メソッド内の静的変数にアクセスするには、:: シンボルを使用する必要があります。$this は使用できません。
  • ##静的メソッドと静的変数はサブクラスによって継承されます。
  • 静的変数には、
  • ->
  • ではアクセスできませんが、

    :: (二重コロン) によってアクセスできます。 オブジェクト オブジェクト名 -> を使用して静的メンバー メソッドを直接呼び出すことができます。これは、通常のメソッドを呼び出すのと同じです。

  • 推奨学習: 「

    PHP ビデオ チュートリアル」
  • "

以上がPHPの静的プロパティと静的メソッドとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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