PHP 静的キーワード

WBOY
WBOYオリジナル
2016-06-23 14:30:111007ブラウズ

static キーワード

クラスのメンバーまたはメソッドを static として宣言すると、クラスをインスタンス化せずに直接アクセスできます。静的メンバー (静的メソッドを除く) には、オブジェクトを通じてアクセスできません。

PHP4 と互換性を持たせるため、「可視性」が指定されていない場合、プロパティとメソッドはデフォルトで public になります。

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

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

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

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

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

例 #1 静的メンバー コードの例

class Foo
{
public static $my_static = 'foo';

public function staticValue() {
return self::$my_static;
}
}

class Bar は Foo
{
public function fooStatic() {
returnparent::$my_static;
}
}


print Foo::$my_static . " ";

$foo = new Foo(); を拡張します。
print $foo->staticValue() . " ";
print $foo->my_static . " "; // 未定義の "プロパティ" my_static

print $foo::$my_static . 'Foo';
print $classname::$my_static . " "; PHP 5.3.0 以降では、

print Bar::$my_static を動的に呼び出すことができます。 " ";
$bar = new Bar();
print $ bar->fooStatic() . " ";
?>

例 2 静的メソッドのコード例

class Foo {
public static function aStaticMethod() {

}

フー::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod(); // PHP 5.3.0 以降

出典: http://www. /php/83.html

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