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で宣言されたメソッドは、インスタンス化されていなくとも実行することができました。