LoginSignup
0
0

More than 1 year has passed since last update.

スコープ演算子(::) アロー演算子(->) PHP

Last updated at Posted at 2022-04-23

スコープ演算子(::)

インスタンス化していない状態でプロパティ(変数)やメソッド(関数)にアクセスしたいときに使う。

クラス外からアクセスする際の例
<?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-> の形で書く。
$ マークはつかないことに注意。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0