PHPコーディング

PHPのおかしな動き、誤動作?

2013年04月07日
PayPal毎度ありがとうメール】をご購入いただいたことがご縁で、WordPressの改変を頼まれました。

WordPressのコメント投稿に「タイトル」を追加するっ!

WordPantsでもっと WordPress を楽しもう!
を見て改変したのだけれど、うまくいかないということでした。
追加したいのは、コメントした人の名前です。

説明を読む限り、そんなに難しくなさそうだと思い、やってみることにしました。
ところが、なぜかうまくいかないのです。
なぜか最後のコメントだけ、名前が取得できないのです。ループが最後まで回っていないのでしょうか・・・
それともデータベースがおかしい?

WordPressの件はできない旨をお伝えして、改変は取りやめにしていただきました。

少し間をおいてから思い出したのですが、【PayPal毎度ありがとうメール】も、その方のサーバーで動かなかったのです。
調べてみると、PHPが誤動作していました。
誤動作なんてありえるのか、と不思議なんですが・・・ ここではとりあえず誤動作ということで書いてみます。

他のサーバーではそんな誤動作は見たことがありません。ツールを動かすと必ず通る箇所なので、おかしければ他のユーザーさんの所でも、正常に動きません。
ところが、他の方からはそのような連絡は全くないのです。

PHPの設定の問題かなと思い調べたのですが、そのような事実は見つけられませんでした。

誤動作しているのは、
if(条件式){
 処理1
 return;
}
else{
 処理2
 return;
}
という構文です。

条件式が真なのに、処理1が行われていなかったのです。しかも、この構文があると必ず誤動作するというわけではないのです。

この時は
if(条件式){
 処理1
 return;
}
処理2
return;
と書き換えることで、正常に動くようになりました。

原因を突き止められないまま、WordPressの改変をお引き受けしたのですが、もしかすると何らかの関係があるのかもしれません。

ずっと以前、別のサーバーでも、PHPがおかしかったことがありました。その時は【curl_setopt】関数でした。
同じサーバー会社の別サーバー(おそらくハードが違う)では正常に動くのに、どうしても動かないアカウントがあったのです。
サーバー管理会社に問い合わせたのですが、サーバー管理会社も原因がわからないとのことでした。このときは、サーバー(おそらくハードそのもの)を変えてもらったら、すんなり動きました。

自分が契約しているサーバーではないので、とことん調べられませんが、何か不穏なものを感じてしまいます。