« REASON4.0注文 | トップページ | ユニクロ「POLONOW」のCMはCORNELIUSだった »

2009年4月29日 (水曜日)

PHPのarray_mergeではまる話

 久々にWebプログラミング。PHPにて。

 配列を連結する必要があり。関数とかは最小限しか知らないので、検索。array_mergeってのがあるのを知る。
 やってみる。
 うまくいった。

 しかし、レンタルサーバーにアップしてみると、エラーが出る。
 ローカルのテスト環境はPHP4、今回使用したレンタルサーバーはPHP5であった。

 複数のレンタルサーバーを契約しており、一部はPHP4のままなので、ローカルでの開発はPHP4でやっていた。普通なら、PHP4で作ったプログラムはPHP5環境でも動く。これで問題なかったのだが。
 まれに、PHP4ではうまくいくのに、PHP5で動かないことがある。

 で、array_mergeのドキュメントを読む。

 PHP4とPHP5では動作が異なることが判明。マージ対象となる変数が配列じゃないといけなくなったのだった。宣言なしで変数が使えるPHP的(うそ)なプログラミングをやってたのがあだとなったようだ。

 型キャストの使用でOK、みたいなことが書いてある。
 (array)$a みたいな感じにすればいい模様。しかし、既存のコードの書き換えが多いので、これは面倒。

 ということで、「$a=array();」みたいに最初に空の配列をつっこむことで解消。
 これなら、既存の部分にいちいt型キャストを指定する必要はない。言葉の使い方が違ってるかもだけど。

 っていうメモ。


|

« REASON4.0注文 | トップページ | ユニクロ「POLONOW」のCMはCORNELIUSだった »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/44836031

この記事へのトラックバック一覧です: PHPのarray_mergeではまる話:

« REASON4.0注文 | トップページ | ユニクロ「POLONOW」のCMはCORNELIUSだった »