phpとjavaの静的変数

WBOY
WBOYオリジナル
2016-06-13 13:18:49722ブラウズ

php と java の静的変数 static
クラスが最初にロードされるときに静的メンバーが作成されるため、クラス外のオブジェクトを必要とせずに、クラス名を使用して静的メンバーにアクセスできます。静的メンバーは、このクラスの各インスタンスによってオブジェクト化されます。PHP 言語は使用できます。オブジェクトはクラス内の静的メンバーにアクセスしますか?

各オブジェクト内には静的メンバーは存在しませんが、各オブジェクトは共有できるため、オブジェクトを使用してメンバーにアクセスする場合、そのような属性定義は存在しません。オブジェクトを使用してアクセスすることはできません 他のオブジェクト指向言語では、静的メンバーの場合は

Java はオブジェクトを使用して静的メンバーにアクセスできます

クラス内の静的メソッド クラスの静的属性のみがアクセスできますクラス内の静的メソッドはクラスの非静的メンバーにアクセスできません。その理由は非常に簡単です。このクラスのメソッド内でこのクラスの他のメンバーにアクセスしたい場合は、$this 参照を使用する必要があります。参照ポインター $this は、このメソッドを呼び出すオブジェクトを表します。静的メソッドはオブジェクトでは呼び出されず、クラス名を使用してアクセスされるため、オブジェクトは存在せず、$this がなければ参照されません。 $this 参照では、クラス内の非静的メンバーにはアクセスできません。また、クラス内の静的メンバーはオブジェクトなしでアクセスできるため、クラス内の静的メソッドはクラスの静的属性にのみアクセスできます。 $this は存在しません。静的メソッド内の他の静的メンバーにアクセスするには、特別なクラス「self」を使用します。self は、この静的メソッドが配置されているクラスを表す点を除き、$this と似ています。したがって、静的メソッドでは、メソッドが配置されているクラスの「クラス名」を使用することも、他の静的メンバーにアクセスするために「self」を使用することもできます。特別な事情がない場合、通常は後者を使用します。それは、「self::メンバー属性」「」の方法です。

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