GameCorder.net

このエントリーをはてなブックマークに追加

php,staticの使い方

staticキーワードの使い方です。
staticキーワードを使えば、クラスをインスタンス化しなくとも、プロパティにアクセスすることができます。
サンプルを見ます。

<?php

class Dog{
	public $name;
	public static $kind = "犬";	// インスタンス化されていなくとも呼び出すことができる
	
	public function call(){
		echo $this->name;
	}
}

echo Dog::$kind;

実行結果

犬

?>
		

上記のように、インスタンスしなくとも、staticで宣言されたkindにアクセスすることができました。
次は、メソッドに対して使用する場合です。

スタティックメソッド

メソッドに対しstaticをつけるので、staticメソッドです。
staticメソッドの中で$thisを使用することはできません。
$thisは、インスタンス化されたプロパティを参照するからです。
では、サンプルコードです。

<?php

class Dog{
	public $name;
	public static $kind = "犬";	// インスタンス化されていなくとも呼び出すことができる
	
	public function call(){
		echo $this->name;
	}
	public static function callKind(){
		echo self::$kind;		// staticに対しては、selfを使用して呼び出す
	}
}

echo Dog::callKind();

実行結果

犬
?>
		

staticで宣言されたプロパティに対しては、selfキーワードでアクセスします。
staticで宣言されたメソッドは、インスタンス化されていなくとも実行することができました。