糸島企画

ホームページ作成、糸島お助け屋、etc.

代表ブログ

PHP開始タグの落とし穴? いや、ただのタイプミス

 PHPでいろいろ作ります! 糸島企画の落合です。

 PHPって何語だよ、と思われた方もおられるかと思いますが、プログラミング言語のひとつです。
 このホームページを作るために使っているWordPressという仕組みにもPHPは使われています。

 今回はそのPHPを使っていて、ちょっとした落とし穴にハマったので、転んでもタダでは起きないぞという気持ちで記事を書きたいと思います!

PHPの開始タグ <?php

 PHPを使う時、大抵は書くのがこれ→ <?php です。
 終了タグである ?> とセットで用いたり、終了タグは書かずに開始タグだけで使われたりします。

 もちろんこの記述がないと、どこがPHPなのか分からず動かないわけなんですが、もし打ち間違ったらどうなるでしょう?
 明確なタイプミスはエラーを吐いたり止まるので分かります。ですが、あるんです。環境によって動いたり動かなかったりするやつが。

 超怖いタイプミスが、こちら <? です。

<? だけでも動くときもあるのです

 phpって書かないと、PHPとはわからないんじゃないの? と思うじゃないですか。
 実は、省略形として動く時があるんです。

PHP では、短い形式の開始タグ <? も使えます (しかしこれはおすすめしません。というのも、この形式のタグは php.ini で short_open_tag を有効にするか –enable-short-tags オプションつきで PHP を configure した場合でないと使えないからです)。

PHP: PHP タグ – Manual

 マニュアルで「おすすめはしません」と書いてある、この形。
 場合によって動いて、場合によって動かないのが曲者です。紛れ込むと発見が大変なのです。

 実際、最近これに時間を取られたので、記事にしてやるぞと思った次第です。

不具合探しでは思い込みを捨てよう

 問題探し中につぶやいたツイートがこちら。

 引用リツイートもいただきました。

 実際本当にそのとおりで、思い込みを捨てることがとても大切。

 「何も触らず不具合が起きるわけ無いじゃん!」 と思ってたら、環境によるものでなにかしたわけじゃないとか、ありますからね。
 ありますからね……。

 まぁ、見つかってよかったです。探すこと自体は楽しいですしね。時間取られますが。
 悔しくもあったので、ネタにしてやりました。

PHPの開始タグにご注意ください

 そんなタイプミスしねーよ! って感じかもしれませんが、何かの時の備えに覚えておいてください。
 PHPを触る機会なさそうなんですけど……という方も、人生何が起こるかわかりませんし!

 PHPのファイルを人に渡したら、動かないと言われた。

 特に触ってなさそうだけど、うちの環境では動いてる。

 目に見えるエラーが無い。崩れてもない。

 そんなときは、もしかしたら開始タグのミスかも知れません。
 可能性のひとつとして何かの役に……立たないほうがいいかもですが、発見時に役立ててもらえたらいいなと思います。

 糸島企画はPHPを用いた開発もいたします。
 WordPressのページや、プラグイン制作、Webサービス制作など、ぜひご相談ください。

 お問い合わせ、お待ちしております!

(代表 落合裕太)

よかったらぜひシェアをお願いします!