PHPでいろいろ作ります! 糸島企画の落合です。
PHPって何語だよ、と思われた方もおられるかと思いますが、プログラミング言語のひとつです。
このホームページを作るために使っているWordPressという仕組みにもPHPは使われています。
今回はそのPHPを使っていて、ちょっとした落とし穴にハマったので、転んでもタダでは起きないぞという気持ちで記事を書きたいと思います!
PHPの開始タグ <?php
PHPを使う時、大抵は書くのがこれ→ <?php です。
終了タグである ?> とセットで用いたり、終了タグは書かずに開始タグだけで使われたりします。
もちろんこの記述がないと、どこがPHPなのか分からず動かないわけなんですが、もし打ち間違ったらどうなるでしょう?
明確なタイプミスはエラーを吐いたり止まるので分かります。ですが、あるんです。環境によって動いたり動かなかったりするやつが。
超怖いタイプミスが、こちら <? です。
<? だけでも動くときもあるのです
phpって書かないと、PHPとはわからないんじゃないの? と思うじゃないですか。
実は、省略形として動く時があるんです。
PHP では、短い形式の開始タグ <? も使えます (しかしこれはおすすめしません。というのも、この形式のタグは php.ini で short_open_tag を有効にするか –enable-short-tags オプションつきで PHP を configure した場合でないと使えないからです)。
マニュアルで「おすすめはしません」と書いてある、この形。
場合によって動いて、場合によって動かないのが曲者です。紛れ込むと発見が大変なのです。
実際、最近これに時間を取られたので、記事にしてやるぞと思った次第です。
不具合探しでは思い込みを捨てよう
問題探し中につぶやいたツイートがこちら。
不具合が発生しているページとかの原因追求って結構好きですが、直接見ずに質問しながら特定するの大変ですね。
エラーメッセージとかが出ていると分かりやすいけど、無いと問題の位置はわかっても、内容がわからないことも多々。
手元の環境では再現できなかったりとか。遠隔でパズル解いている感じ!— 落合裕太@糸島企画 (@itoshima_occhi) October 30, 2018
引用リツイートもいただきました。
めちゃわかる。
「うまくいかない」って状況を伝える言葉として超わかりやすいけど、原因考えてく上では超わかりづらい。
何をしてどうなったのか?このあたりを聞き出すのもまたひとつのスキル。潔く思い込みを捨てる。 https://t.co/M1O754zWss— 佐々木基之 (@moto_ssk) October 30, 2018
実際本当にそのとおりで、思い込みを捨てることがとても大切。
「何も触らず不具合が起きるわけ無いじゃん!」 と思ってたら、環境によるものでなにかしたわけじゃないとか、ありますからね。
ありますからね……。
まぁ、見つかってよかったです。探すこと自体は楽しいですしね。時間取られますが。
悔しくもあったので、ネタにしてやりました。
PHPの開始タグにご注意ください
そんなタイプミスしねーよ! って感じかもしれませんが、何かの時の備えに覚えておいてください。
PHPを触る機会なさそうなんですけど……という方も、人生何が起こるかわかりませんし!
PHPのファイルを人に渡したら、動かないと言われた。
特に触ってなさそうだけど、うちの環境では動いてる。
目に見えるエラーが無い。崩れてもない。
そんなときは、もしかしたら開始タグのミスかも知れません。
可能性のひとつとして何かの役に……立たないほうがいいかもですが、発見時に役立ててもらえたらいいなと思います。
糸島企画はPHPを用いた開発もいたします。
WordPressのページや、プラグイン制作、Webサービス制作など、ぜひご相談ください。
お問い合わせ、お待ちしております!
(代表 落合裕太)