がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

多分バージョン違い…+α

検証し切れていないのですが*1…おそらく記述から見るに、バージョンによる違いだと予想されます。
array_merge_recursive
という関数がございます。
http://jp.php.net/manual/ja/function.array-merge-recursive.php

array_merge_recursive ― 二つ以上の配列を再帰的にマージする


さて。元ソースですが。概ねこんなところでございました。

$all_item_array = array_merge_recursive($all_item_array, $item_array);

問題は…プログラムの流れにおいて、all_item_arrayが初期化されておらず*2。当然ではありますが、初期値…というか未定義であるNULLが渡されておりました。
故に。このソース、ループん中にあったのですが、それはもぉお見事に「なんもデータが引き継がれずNULLっぱなし」でございました。
別の、確かPHP4だったと窺っておりますが、の環境では動いていたのですから問題ないのでしょう。
ただ。PHP5(正確にはPHP 5.1.6)の環境下においては。いずれかの引数がNULLだと「問答無用でNULLを返してくださる」ように変わってみるみたいです。
どこにも書いてませんが。
とりあえず気をつけましょうってのが、表向きの趣旨。表向きとか言い切りましたが。


えとですねんとですね。
趣味でお遊びで個人で作ってるんならなんも言いませんが。
お仕事で業務で会社背負ってモノ作ってるんならね。初期化とか型チェックとか存在チェックとか、それくらいやるのは「最低限の礼儀以前」です「躾未満」の問題ですこの単語嫌いですがあえて使いましょう「常識」です。


しっかり肝に銘じておきましょう*3

*1:っつか業腹過ぎてする気もねぇし

*2:えぇ元のソースコードは、型とか存在チェックとか初期化とかいう概念を一から百まで全部ぶったぎってある最低仕様だったので

*3:はいすみません小汚いどころか大汚いソースみて、心が荒むったけ荒んでます orz