PHPのStaticキーワードとは

 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プロパティは矢印演算子ではアクセスできないので注意してください!こちらもインスタンス化なしにプロパティにアクセスできます。

 処理の判定フラグやプログラム全体で持たせておくとクラスの生存期間によらずにデータを保管しておけるので便利だと思います。

ハックノートをフォローして
最新情報をチェックしよう

AWS構築サービスの全てをまとめた資料を公開中

ハックノート(TOWN株式会社)では、AWSの導入や構築支援を行っています。AWS導入メニューやサービス詳細、構成例や費用を掲載した資料をダウンロードできます。

AWSの新規導入やAWSへの移行を検討の際は、ぜひご参考ください。


APNコンサルティングパートナー

TOWN株式会社はAmazon公認コンサルティングパートナーです。