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