はじめに
最近PHPやLaravelを学習し始めた僕ですが、オブジェクトのメンバ(メソッド、プロパティ)を取得する役割のアロー演算子について触れる機会が多くあり、読み解くのに苦労したので自分なりにまとめたいと思います。
初学者が故に間違っている点ありましたらご指摘いただけると幸いです。
アロー演算子てなんぞや
->
これです。
右辺に使いたいメソッドやプロパティ。左辺にそれらが置いてあるクラスを記述します。
具体的な使い方としては
class PostController extends Controller
{
private $post;
public function __construct(Post $instanceClass)
{
$this->post = $instanceClass;
}
public function index () {
$post = $this->post->all();
}
}
$this->post
PostControllerで定義した$postを呼んでる。呼び出す時$は取る。
post->all()
コンストラクタでPostモデルを$postに代入しているので、モデルクラスの返り値であるCollectionインスタンスのallメソッドを実行できる。
モデルクラスの返り値がなぜcollectionインスタンスかについては下記参照してください。
Laravel 5.8 コレクション
読み解くコツは返り値を把握すること
個人的にはそのメソッドがどういう処理を行って、どんな値を返すのかを一つ一つ読み解くのがポイントだと思います。
返り値を把握する方法は、みなさん大好きなdd()
でコツコツとデバッグしていくのがベストです。
最後に
railsを学習してた僕からしたらアロー演算子の表記が違和感ありすぎて理解に苦しみました。
単純にオブジェクトのメソッドやプロパティを呼び出すために使用しているものだと考えれば、さくさく読めるようになると思います。
ひとつひとつのアロー演算子で区切られた処理を地道にddしていき、メソッドの返り値を理解することが、初学者にとっては最善の策だと思います。