static キーワード

クラスメンバもしくはメソッドを static として宣言することで、 クラスのインスタンス化の必要なしにアクセスすることができます。 static なメンバは、インスタンス化されたクラスオブジェクトから アクセスすることはできません (static なメソッドからは可能です) 。

static 宣言は、可視性の宣言の後に置く必要があります。 PHP 4 との互換性を維持するため、 可視性の宣言が ない場合、そのメンバまたはメソッドは、 publicとして宣言されていると みなされます。

static メソッドは、オブジェクトのインスタンスを生成せずに コールすることができます。疑似変数 $this は、 static として宣言されたメソッドの内部から利用することはできません。

実際、static メソッドは、コンパイル時に 解決されます。 明示的なクラス名を使用する時、このメソッドはすでに完全に特定されて おり、ルールの継承を行うことはできません。 コールが self を伴って行われた場合、 self はカレントのクラス、すなわち、 そのコードが属するクラスに変換されます。 ここでもルールの継承は適用されません。

static プロパティは、矢印演算子 -> によりオブジェクトからアクセス することはできません。

static でないメソッドを静的にコールすると、E_STRICT レベルの 警告が発生します。

例 19-15. static メンバの例

<?php
class Foo
{
    
public static $my_static = 'foo';

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

class
Bar extends Foo
{
    
public function fooStatic() {
        return
parent::$my_static;
    }
}


print
Foo::$my_static . "\n";

$foo = new Foo();
print
$foo->staticValue() . "\n";
print
$foo->my_static . "\n";      // Undefined "Property" my_static

// $foo::my_static is not possible

print Bar::$my_static . "\n";
$bar = new Bar();
print
$bar->fooStatic() . "\n";
?>

例 19-16. static メソッドの例

<?php
class Foo {
    
public static function aStaticMethod() {
        
// ...
    
}
}

Foo::aStaticMethod();
?>


東京デリヘル 池袋デリヘル 新宿デリヘル 渋谷デリヘル 品川デリヘル

鶯谷デリヘル 大塚デリヘル 立川デリヘル 町田デリヘル 横浜デリヘル 埼玉デリヘル

千葉デリヘル 大阪デリヘル 神戸デリヘル 京都デリヘル 名古屋デリヘル デリヘル

アダルトレンタルサーバー アダルトレンタルサーバー 表札 断熱塗料 UGUISU

大阪 老人ホーム 京都 老人ホーム 兵庫 老人ホーム 和歌山 老人ホーム 滋賀 老人ホーム

奈良 老人ホーム 東京 老人ホーム 神奈川 老人ホーム 千葉 老人ホーム 埼玉 老人ホーム 老人ホーム