PHPのソースで見慣れない記号が出てきた・アロー演算子(->)、ダブルアロー演算子(=>)
2017/08/03
PHPのソースで見慣れない記号を調べる
アロー演算子、ダブルアロー、ビット演算子、可変変数
先日書いた PHPのオブジェクト指向についての記事「CakePHPを学ぶ際にはオブジェクト指向を学ぼう」ですが、あの記事を書きつつ思い出したサイトがありました。
アロー演算子
http://911.ddtea.com/?eid=1286712
PHPのソースに見慣れない記号が出てきたときの調べ方例
http://blog.neo.jp/dnblog/index.php?module=Blog&action=Entry&blog=pg&entry=2792&rand=561d3
PHP初心者が「何コレ!?」と思った記号4つ
http://korikorikorikori.blog.fc2.com/blog-entry-163.html
そうなのです。
「->」「=>」「::」これらの記号は、オブジェクト指向プログラミングをする際に必要となってくる記号なのです。
そのため、上記のサイトを読めばなんとなく何をする記号なのかは理解できていましたが、根本的な解決には至っていませんでした。
なぜなら、オブジェクト指向プログラミングに関する知識が足りないからです。
例えば、アロー演算子(->)。
これですが、参考サイトの一番上に書いてあるサイトは、アロー演算子の説明としては非常に秀逸な説明だと思いました。
その他のサイトは、公式サイトの説明をほぼ踏襲する形で書かれているため、何を意味しているのかさっぱり分かりませんでしたが、このサイトは、少しわかった気にさせてくれました。
それでもなお、漠然とした理解しかできないのは、オブジェクトに対する基本知識が不足しているからだ、ということにようやく気付きました。
Webサイトで簡単なプログラムを構築するだけであれば、オブジェクト指向の考え方は必ずしも必要はないものですが、PHPのプログラム記述もオブジェクト指向を重用する動きが顕著ですし、オープンソース等で提供されているプログラムのほとんどはオブジェクト指向プログラミングで記述されています。
そのため、本格的に PHPを使っていく方は、改めて、オブジェクトに関する理解を深めていくことが、PHPの理解を深めていくことにつながっていくでしょう。
ちなみに、「$$」は、可変変数というそうです。
http://www.php.net/manual/ja/language.variables.variable.php
でも、これまた公式サイトの説明は読んでも分かりません(笑)。
なので、下記のサイトなんかが少しは分かりやすく説明されていますので参考になるかと。
http://speit.blog78.fc2.com/blog-entry-56.html
http://www.kokin.rr-livelife.net/php/php_post/php_post_35.html
http://www.polidog.jp/2012/11/27/%E4%BB%8A%E3%81%BE%E3%81%A7%E6%B0%97%E3%81%A5%E3%81%8B%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9Fphp%E3%81%AE%E5%8F%AF%E5%A4%89%E5%A4%89%E6%95%B0/
実は、一番下のサイトの 1の書き方に似た書き方はよくしていたような気がしますね。
この可変変数の処理をしっかり理解したらもっと短いコードで書けそうな気がしますね。
PHPユーザのためのオブジェクト指向講座
と、いうわけで、自分だけでプログラムを作成し、利用するのであれば問題ありませんが、複数人で開発をする、ネットで提供されている情報や GitHubなどで提供されているオープンソースなどを利用してシステム開発を行うに当たっては、PHPと言えどもオブジェクト指向を学ばずに過ごすことはできないレベルになっています。
そんな方のために「CakePHPを学ぶ際にはオブジェクト指向を学ぼう」という記事も書いていますので、参考になれば、と思います。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
include、requireのパス指定をdirname(__FILE__)、__DIR__と書く理由
include、requireのパスの指定を dirname(__FILE__)、__DIR__で記述する理由に付いて解説。相対パス、絶対パスを直書き、パスを書かない場合は何が問題かを説明。
-
ECCUBEでカード決済NGの受注情報をマイページ購入履歴に表示しない方法解説
ECCUBEでカード決済に失敗しても購入履歴一覧に注文情報(受注情報)が表示される問題への対処方法を解説。受注情報レコードの作成の流れとステイタスについても解説。
-
配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例
配列の値を「、」でつないで出力する際、単純にforeachで繰り返し処理をすると「イヌ、サル、キジ、」となるが文字列最後の「、」を出力しない方法を3つ解説している。
-
ECCUBEの注文完了画面注文番号と商品情報を編集するCRITEO(クリテオ)タグを編集
ECCUBEの注文完了画面にクリテオのタグを編集する方法を紹介。標準機能では完了画面に注文IDや購入商品の情報を渡さないため改修が必要です。
-
数値文字参照コード変換ツール(HTML特殊文字コード変換ツール)
テキストを数値文字参照コード(特殊文字コード)に変換するツール。テキストを数値文字参照コードに簡単変換。数値文字参照、文字実体参照、特殊文字などの違いも解説。
-
数値がMySQLのint(11)に保存できない!PHPの変数が本当にint型か確認!
PHPでintegerとdoubleが混在するような計算をする場合は要注意!計算結果が整数値であっても途中で使用する変数にdoubleの値が入っているときは計算結果がintegerではない場合があります。
-
PHPのデバッグで使う print_r、var_dump、var_exportの動作の違い
PHPのデバッグ等で変数や配列の中身を確認するために使用する関数print_r、var_dump、var_exportの動作の違い、仕様の違いについて確認した。var_exportがオススメ。
-
Smartyの修飾子regex_replaceで正規表現の後方参照・PHPではpreg_replace
ECCUBEで使われているSmartyで文字列を正規表現で置換し後方参照で値を利用する装飾子regex_replaceの解説です。細かな条件がありますので注意が必要です。
-
ECCUBE mtb_constants initパラメータ設定の項目を追加する方法
ECCUBEのパラメータ設定で設定できる項目を追加する方法を説明します。
-
PHPで特定の日間の日付を for、strtotimeで表示する
ある特定の間の日付の情報を for文、strtotimeを使って作成し、その解説をしています。
Comment
アロー演算子といえば、CakePHPのModelにアクセスするのに、やたら登場していたような。
CakePHPは MVCのオブジェクトで出来ていますからね。