スコープ演算子(::)
インスタンス化していない状態でプロパティ(変数)やメソッド(関数)にアクセスしたいときに使う。
クラス外からアクセスする際の例
<?php
class Hoge {
// プロパティ(変数)定義
$name = "田中";
$color = "赤";
// メソッド(関数)定義
function hogehoge() {
echo "self::colorです。"; // クラス内から呼ぶ場合は、 「 self:: 」 の形で書く。
}
}
echo Hoge::$name; // Hogeクラスの$nameにアクセス。プロパティ(変数)にアクセス。
// 結果
"田中"
Hoge::hogehoge(); // Hogeクラスのfunction hogehogeにアクセス。メソッド(関数)にアクセス。
// 結果
"赤です。"
?>
※クラス外からアクセスする場合は
クラス名::アクセスしたいプロパティ(変数)やメソッド(関数);
※クラス内からアクセスする場合は
self::アクセスしたいプロパティ(変数)やメソッド(関数);
アロー演算子(->)
インスタンス化した状態でプロパティ(変数)やメソッド(関数)にアクセスしたいときに使う。
例
<?php
class Hoge {
// プロパティ(変数)定義
$name;
// メソッド(関数)定義
function hogehoge() {
echo "{$this->name}です。"; // クラス内からアクセスする場合は `$this->` の形で書く。
}
$hoge = new Hoge(); // Hogeクラスに$hogeという名前のインスタンスを作成。
$hoge->name = "田中"; // 上記で作成したインスタンスの$nameにアクセスして、田中という値を入れる。
$hoge->hogehoge(); // hogehoge関数にアクセス。
// 結果
"田中です。"
}
?>
※クラス外からアクセスする場合は $インスタンス名->
の形で書く。
※クラス内からアクセスする場合は $this->
の形で書く。
※$
マークはつかないことに注意。