PHPのコードでよく見かける矢印みたいな->
この記号はなんなんでしょう?
googleで検索しても、記号だから引っ掛かりません。
これは「アロー演算子」と呼ばれる、オブジェクト指向でよく使われる演算子です。
アロー演算子って何?
アロー演算子は左辺から右辺を取り出す演算子
アロー演算子とはクラスのメソッドやプロパティにアクセスするための演算子です。
オブジェクト指向を理解していないと、なんのこっちゃ分かりませんね。
クラスは関数や変数がまとまった棚みたいなもんです。
メソッドはその棚に保管してある関数で、プロパティは変数のことです。
そこに入ってる値を取り出すみたいなイメージですね。
※実際にはもっと複雑なことをやりますが、趣旨が変わってくるためここでは割愛します。
アロー演算子を使うイメージ
以下はあくまでもこんな感じなんだよというイメージです。
こういう書き方はしません。
※オブジェクト指向はまた別項でやります。
class fruit {
$apple = “りんご”
$orange = “オレンジ”
$melon = “メロン”
}
fruit->$apple //りんご
「fruit」というクラスの中にある「$apple」という変数にアクセスして値を取り出します。
「fruit」という棚に「$apple」という引き出しがあって、その引き出しには「りんご」が入っていますので、その「りんご」を取り出すイメージですね。
だから、引っ張ってくる値は「りんご」になります。
※実際にはもっと複雑なことをやりますが、趣旨が変わってくるためここでは割愛します。
DataTimeクラスで日付を取り出す
アロー演算子を使ったサンプルとして、DataTime
クラスから日付を所定のフォーマットで取り出してみましょう。
1 2 3 4 5 |
// DateTimeクラスで現在の日時を取得し変数に格納 $date = new DateTime(); // その変数からformatを使って日時を出力 echo $date->format('Y年m月d日'); |
結果
2015年11月14日
DataTime
クラスには日時やタイムゾーンが格納されていて、その中から日付を取り出すイメージですね。
DateTimeクラスの中身
ちなみにDateTime
クラスの中身は以下のようになっています。
1 2 3 4 5 |
// DateTimeクラスで現在の日時を取得し変数に格納 $date = new DateTime(); // 中身を出力 print_r($date); |
結果
DateTime Object
(
[date] => 2015-11-14 11:05:14.000000
[timezone_type] => 3
[timezone] => Asia/Tokyo
)
上記のようなオブジェクトになっており、その中から日付を取り出しました。
オブジェクト指向でプログラミング効率も大幅にアップしますが、初心者には敷居が高いですね。
とりあえず、アロー演算子ってそういう意味なんだなくらいに知っておけばいいのかなと思います。
興味がある方は、本格的に習得してみてはいかがでしょうか。
いろんなページを見ていますが、素人の私にも一番分かりやすい説明でした。
ありがとうございます。そう言っていただけると励みになります。今後ともよろしくお願いいたします。
JavaScriptのアロー関数と同じ感じの動きかなとざっくり考えてた疑問が解消しました🙂
コメント頂きありがとうございます。疑問が解決したとのことでお役に立てたようで嬉しい限りです。今後とも分かりやすい記事を作成していきますのでよろしくお願いいたします。