【php】php4からphp5に移行するときあったことの例
問題
php4のプログラムをphp5に移植する作業があるのですが、何か問題など想定されますか。
答え
よく言われる、オブジェクトの参照渡し、値渡しや、$thisの扱い、予約語、文法の違いなど、明らかに動かなくなる場合は、とてもわかりやすいのですが、array_merge()の仕様が変わっているのにはなかなか気づきませんでした。
php4だと
引数に配列以外を渡すと、よい具合に調整して配列をマージしてくれる。
- 文字、数字 ⇒ 文字、数字を1つの要素の配列として処理。
- オブジェクト ⇒ プロパティ名が配列のキーとして処理。
- NULL、空のオブジェクト等 ⇒ 空の配列として処理。
php5だと
array_merge()に配列以外を渡すとNULLを返す。
<?php $x = array_merge($何か配列, 戻り値が配列とも限らない関数()); // → php5だと$xはNULL、php4だと$xは配列のまま //この後 $xを使った処理に影響が...
一応WARNINGが出ますが。
ということがありました。
コメント