#アロー演算子とは
言ってしまえばこれのことです。
$hoge -> hoge;
この矢印なんやねん!って正直思っているあなた、安心してください私もわかりません。(いいのか?)
ということで、かんたんにまとめておきます。
アロー演算子はクラスのメソッドやプロパティ(変数)にアクセスするための演算子です。
どういうことか、ソースを見たほうが早いでしょう。
そこでオブジェクト指向にありがちな人間というオブジェクトを想定します。
<?php
class Human{
protected $name;
protected $age;
//説明1
function __construct($name, $age) {
$this ->name = $name;
$this ->age = $age;
}
//説明2
function intro(){
echo 'My name is '.$this->name.'. My age is '.$this->age.' years old.';
}
}
$tom = new Human('Tom', '17');
//説明3
$tom->intro();
?>
これを実行すると以下が出力されます。
my name is Tom. My age is 17 years old.
なんで英語やねん、とつっこみたいですがそこはスルー。PHPはおしゃれな言語ですからね(偏見)
##説明1
コンストラクタを作っています。見ればわかりますね。
ここで$this->hoge = $hoge
が出現します。
これは「ここのhogeは$hogeですよ」といっているわけです。
しかし、$thisってなんやねんという疑問が発生すると思います。これは自分自身だと思ってください。つまりコンストラクタ自身なんです。
コンストラクタ自身のhogeを$hogeとしますという認識で結構だと思います。違ったらご指摘ください。
ここではクラスに$name
と$age
というプロパティ(変数)がありますね。それにアクセスしているのです。
##説明2
これは説明1を読んでいただければわかると思います。
クラス自身、つまり$this
の中にあるname
というプロパティ(変数)やage
というプロパティ(変数)を呼び出しているだけです。
##説明3
もうここまで来るとわかると思います。
$tom
というインスタンスが生成されました、そのインスタンスはHumanクラスから作られたものです。なのでHumanクラスから生成された$tom
の中にあるintro
というメソッドを呼び出しているだけです。
#まとめ
->ってなんやねんと思いましたが、要は左の中にある右のものを取り出しているだけなんですね。私含め、この記事を読んでいる方が少しでも理解していただければ幸いです。