静的(スタティック)メンバとは
- インスタンスを生成しなくても、クラス内に定義されているプロパティやメソッド(メンバ)にアクセスができること。
静的(スタティック)メンバの使い方
- クラスのプロパティまたはメソッドに
static
という修飾子を付けます。 - staticが付いているプロパティを
静的プロパティ
と呼びます。 - staticが付いているメソッドを
静的メソッド
と呼びます。
静的(スタティック)メンバの書き方
<?php
class クラス名 {
アクセス修飾子 static $プロパティ名;
アクセス修飾子 static function メソッド名(引数) {
//ここに処理が入ります
}
?>
静的(スタティック)メンバにアクセスする方法
-
静的プロパティ
または静的メソッド
にアクセスするにはスコープ定義演算子 「::」
を使います。
スコープ定義演算子 「::」とは
-
静的プロパティ
または静的メソッド
にアクセスするために使う演算子です。
スコープ定義演算子 「::」の書き方
クラス名::アクセスしたいプロパティ
クラス名::アクセスしたいメソッド
オブジェクト演算子「->」とスコープ定義演算子 「::」の違いについて
- どちらもプロパティやメソッドにアクセスするために使いますが、2つの演算子の違いについて紹介します。
オブジェクト演算子「->」のアクセス方法
-
インスタンスプロパティ
とインスタントメソッド
にアクセスできます。 - インスタンスプロパティまたはインスタントメソッドとは
staticを宣言していない
プロパティまたはメソッドです。
オブジェクト演算子「->」の書き方
$インスタンスを代入した変数->アクセスしたいインスタンスプロパティまたはインスタンスメソッド
コード例
<?php
class Products
{
private $name = "テーブル";
public function getName(){
return $this->name;
}
}
$product = new Products();
echo $product->getName();
?>
出力結果
テーブル
スコープ定義演算子 「::」のアクセス方法
-
静的プロパティ
または静的メソッド
にアクセスします。 -
staticを宣言している
プロパティまたはメソッドにアクセスできます。
コード例
<?php
class Products
{
public static $name = "テーブル";
public static function price($price){
return $price;
}
}
echo Products::$name . "の金額は" . Products::price(3000) . "円です";
コード例
テーブルの金額は3000円です