読者です 読者をやめる 読者になる 読者になる

PHP 5.4.0 でArray to string conversionがarray_diffで発生してフルコンボだドン!

要約

array_diff、array_diff_assocで多次元配列のときにE_NOTICEが発生するってことだドン!

PHP 5.4.0で実行すると、

となるのだドン!



以下は遭遇した時のお話だドン!

さて、今日もcontributeという名の時間のコインを投入するのだドン!
ZF2は先日のリリースで PHP 5.4 Support とか大判振る舞いしちゃってるので再確認するのだドン!

テストを動かしてみるドン!


エラーが出たドン!ソースを確認してみるのだドン!

対象行の変数をvar_exportして再現させてみるドン!

$ ~/php/php-5.4.0/sapi/cli/php 6_MvcTest_2.php
$

あれー?

あ、error_reportingを忘れていたドン!
先頭にerror_reporting(E_ALL);を追加して再実行だドン!

マニュアルをよく読めってことだったドン!

注意: この関数は、N 次元配列の一次元だけを調べます。もちろん、例えば array_diff_assoc($array1[0], $array2[0]); とすることにより、より深い次元でチェックを行うことも可能です。
http://jp2.php.net/array_diff_assoc

ちなみに、PHP5.3だとこのE_NOTICEはでないのだドン!

関連
array_diff()は文字列比較だから注意してね | Suinasia