Staticキーワードを使うとクラスのインスタンス化なしにメソッドやプロパティにアクセスすることができるようになります。 今回はそんなStatic メソッドやStaticプロパティの使い方と僕なりに思いつく使い方をまとめたいと思います。
Static メソッド
class TestMethod { public static function StaticMethod() { // 処理 } } TestMethod::StaticMethod(); //インスタンス化なしでStaticMethodを実行できる!! TestMethod->StaticMethod(); //矢印演算子でもStaticMethodを実行できる!! ?>
Staicメソッドは上に示すようにインスタンス化なしでクラス内に記述したメソッドを実行することができます。また、PHPでは矢印演算子でもアクセスできるようです。ただしStaticプロパティでは矢印演算子ではアクセスできないので注意してください!!
ある所定のURLにアクセスしたり、入力された文字列を順番に並べたり、クラス名に依存する必要のない単一的な処理を記述するのが良いでしょう。
Static プロパティ
<?php class TestProperty { public static $staticProperty = null; public static function staticValue() { self::$staticProperty = "Hello World!" return self::$staticProperty; } } echo(TestProperty::$staticProperty); //"null" echo(TestProperty::staticValue()); //"Hello World!" echo(TestProperty::$staticProperty); //"Hello World!" echo(TestProperty->$staticProperty); // Error!! 矢印演算子は使えません!!
上にも書きましたがStaticプロパティは矢印演算子ではアクセスできないので注意してください!こちらもインスタンス化なしにプロパティにアクセスできます。
処理の判定フラグやプログラム全体で持たせておくとクラスの生存期間によらずにデータを保管しておけるので便利だと思います。