久々にWebプログラミング。PHPにて。
配列を連結する必要があり。関数とかは最小限しか知らないので、検索。array_mergeってのがあるのを知る。
やってみる。
うまくいった。
しかし、レンタルサーバーにアップしてみると、エラーが出る。
ローカルのテスト環境はPHP4、今回使用したレンタルサーバーはPHP5であった。
複数のレンタルサーバーを契約しており、一部はPHP4のままなので、ローカルでの開発はPHP4でやっていた。普通なら、PHP4で作ったプログラムはPHP5環境でも動く。これで問題なかったのだが。
まれに、PHP4ではうまくいくのに、PHP5で動かないことがある。
で、array_mergeのドキュメントを読む。
PHP4とPHP5では動作が異なることが判明。マージ対象となる変数が配列じゃないといけなくなったのだった。宣言なしで変数が使えるPHP的(うそ)なプログラミングをやってたのがあだとなったようだ。
型キャストの使用でOK、みたいなことが書いてある。
(array)$a みたいな感じにすればいい模様。しかし、既存のコードの書き換えが多いので、これは面倒。
ということで、「$a=array();」みたいに最初に空の配列をつっこむことで解消。
これなら、既存の部分にいちいt型キャストを指定する必要はない。言葉の使い方が違ってるかもだけど。
っていうメモ。
コメント