ホームページ > バックエンド開発 > PHPチュートリアル > PHPクラスの静的メンバーの詳細な分析

PHPクラスの静的メンバーの詳細な分析

伊谢尔伦
リリース: 2023-03-12 07:50:02
オリジナル
1160 人が閲覧しました

クラスの静的メンバーは一般的なクラス メンバーとは異なります。静的メンバーはオブジェクトのインスタンスとは何の関係も持た​​ず、クラス自体とのみ関係します。静的メンバーは、クラスがカプセル化する関数とデータを実装するために使用されますが、静的メソッドや静的プロパティなどの特定のオブジェクトの関数とデータは含まれません。

静的プロパティには、クラスにカプセル化されるデータが含まれており、クラスのすべてのインスタンスで共有できます。実際、固定クラスに属し、アクセス方法が制限されていることに加えて、クラスの静的プロパティは関数のグローバル変数と非常によく似ています。

次の例では静的プロパティ Counter::$count を使用します。これは Counter クラスに属しており、Counter のインスタンスには属しません。これを使用して参照することはできませんが、self または他の有効な命名式を使用できます。この例では、getCount メソッドは Counter::$count ではなく self::$count を返します。

静的メソッドは、クラスによってカプセル化される必要がある関数を実装し、特定のオブジェクトとは何の関係もありません。静的メソッドは、クラスの属性に完全にアクセスしたり、クラスのインスタンスによってアクセスしたりすることができます。アクセス制限に関係なく、オブジェクト スラングとは何ですか? 前の例では、getCount は -> で呼び出される通常のメソッドですが、メソッドは使用されませんが、PHP は this 変数を作成します。場合によっては、有効なオブジェクトがない場合でも、静的メソッドを使用する必要があります。たとえオブジェクトから呼び出したとしても、PHP はこの変数を静的メソッド内に確立しません。 6.7 では、getCount が 6.3 から Static メソッドに変更されました。
Static キーワード
は、インスタンスが ->
operator
を使用して呼び出すのを防ぐことはできませんが、this-> を使用すると、PHP はこの変数をメソッド内に作成しません。 //6.3 の例は、セクション 4 の例、Constructor
Destructor
を参照しています (前の記事を参照)。 //static メソッドと通常のメソッドの違い もちろん、static キーワードを使用すれば、静的か非静的に呼び出されるかを示すメソッドを作成できます。呼び出される場合、このメソッドは常に静的になります。
クラスでは定数プロパティを定義することもできます。 public static を使用する必要はなく、
const キーワードを使用するだけです。定数プロパティは常にクラスのプロパティです。クラスのインスタンス化ではなく、オブジェクトのプロパティです。

リスト 6.7 静的メンバー


<?php
class Counter  
{  
 private static $count = 0;  
 const VERSION = 2.0;  
 function construct()  
 {  
  self::$count++;  
 }  
 function destruct()  
 {  
  self::$count--;  
 }  
 static function getCount()  
 {  
  return self::$count;  
 }  
};  
//创建一个实例,则construct()将执行  
$c = new Counter();  
//输出 1  
print(Counter::getCount() . "n");  
//输出类的版本属性  
print("Version used: " . Counter::VERSION . "n");  
?>
ログイン後にコピー

以上がPHPクラスの静的メンバーの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート