2011/11/17 Rasmus Lerdorf <ras...@php.net>: > On 11/17/2011 03:10 PM, Stas Malyshev wrote: >> Hi! >> >>> I recall from earlier discussions that Stas was in favor of reverting >>> this change -- what's the status at this time? This single change >> >> I was not and still am not - I think if something warrants notice this >> is exactly the case. Conversion of array to string "Array" IMHO makes no >> sense and not useful in any case, so if you code does that it's most >> probably a bug. I understand that some tests were written without >> accounting for this, but frankly in this case I think the right way >> would be to fix the tests. This is not the feature your code should rely >> on (and I think it should have never existed in PHP in the first place) >> and if we shall guarantee compatibility with every bug and bad decision >> we took in the past we won't be able to advance anywhere. I think in >> this case the inconvenience from fixing the tests is outweighed by the >> advantage of promoting better code and exposing hard-to-find bugs. > > I completely agree. If you are seeing a lot of these in unit tests, then > your tests are likely not testing what you think they are. > > I am seeing complaints about this notice in tests that do this: > > array_diff($a, $b) > > Where either $a or $b contains nested arrays. The thing with this is > that this really is not doing what you think it is when you feed it > nested arrays. For example: > > $a = [1,2,[3]]; > $b = [1,2,[4]]; > > This ends up comparing [1,2,'Array'] against [1,2,'Array'] and these two > arrays are thus identical as far as array_diff() is concerned. Or even > worse: > > $a = [1,2,'Array']; > $b = [1,2,[4,5,6,7,8,9]]; > > Again, array_diff() is going to tell you that there is no difference > between $a and $b. This seems like an obvious case where we issue a > NOTICE telling the user that the code probably didn't do what they > wanted it to. > > -Rasmus
Stas and Rasmus summarized my point of view very well when I proposed that patch. Note that this change should have be a one liner, but it turns out to be a much bigger work [1] because of internal tests also relying on this conversion not to complain. [1] http://svn.php.net/viewvc?view=revision&revision=318288 -- Patrick -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php