【PHP】静的な変数やメソッドを定義する「static」について

Pocket

>クラスの使い方について(目次ページ)

今回は同じクラスで作成した、共通のオブジェクト間で使用することができる静的な変数やメソッドを定義する「static」について記述します。

静的な変数やメソッドを定義する「static」とは?

「static」とはクラス内で使用できる静的な変数やメソッドを定義する構文です。
クラスはオブジェクトを作成する為の設計図です。オブジェクトを作成していく際、各オブジェクトには別個の値が割り当てられます。
「static」は同じクラス間で使用できる共通の値を定義します

 

静的な変数を定義する

今回は消費税計算をするクラスのメソッドを利用して動作を確認してみましょう。

実行結果は以下の通りです

class-step6-1

例で代入した商品aの80円と商品bの20円で、合計100円の値段に消費税率8%(1.08)をかけます。計算結果は108円で正常に計算できているようですね。消費税率は商品の値段が変わっても一定なので静的な変数として設定しています。「public static $tax = 1.08」と変数の前に「static」と宣言することで静的な変数を定義できます。
そして「static」に設定した変数、「$tax」を呼び出すために「self::$tax」という書き方をしています。「static」の変数を呼び出すためには「self::〇〇(変数、またはメソッド名)」という書き方が必要です。「$this」は「自身のインスタンス」を呼び出すのに対し、「self::」とは「このクラス自身の~」という意味なので覚えておきましょう。

 

静的なメソッドを定義する

「static」は変数だけではなくメソッドに対しても使用することができます。上記の消費税計算クラスに下記のコードを追加してみます。

「function」の前に「static」を記述することで静的なメソッドに定義することができます。静的なメソッドを定義すれば、オブジェクトを作成せずにメソッドを使用することが可能になります。呼び出し方は以下の通りです。

クラス名::メソッド名(引数)」と記述することで、オブジェクトを作成することなく、クライス内のメソッドを使用することができます。

以下サンプルコードと実行結果になります。

class-step6-1

Buy::price_static(80 , 20);」と記述することで、オブジェクトを作成することのなくメソッドを呼び出せることが確認出来ました。

まとめ

  • 「static」を宣言することで静的な変数やメソッドを定義することができる
  • 静的な変数を呼び出すには「self::変数名」で呼び出すことができる
  • 静的なメソッドはオブジェクトを作成しなくてもメソッドを呼び出すことができる
  • 静的なメソッドを呼び出すには「クラス名::メソッド名(引数)」で呼び出すことができる

 

エッグ

シェアする

コメントを残す

メールアドレスが公開されることはありません。

コメントする