Re: [PHP-DEV] [RFC] Fix list() behavior inconsistency
On Thu, 11 Sep 2014, Dmitry Stogov wrote: Please take a look and make your opinion. https://wiki.php.net/rfc/fix_list_behavior_inconsistency This inconsistency might be interpreted like a bug, but fixing it might break existing PHP code (at least my attempt to fix it in documented way broke few phpt tests). But at least your option Enable string handling in all cases makes additional things work, instead of making things *no longer* work. I realize that: list($a,$b) = aa;var_dump($a,$b); Will now start returning something else than NULL, but I would almost consider that a bug. I would definitely elect to vote for Enable string handling in all cases as it IMO actually fixes something. cheers, Derick -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [RFC] Fix list() behavior inconsistency
Both decisions make sense. I'm indifferent which one to make. Just not to keep the undocumented inconsistency :) Thanks. Dmitry, On Wed, Sep 17, 2014 at 3:00 PM, Derick Rethans der...@php.net wrote: On Thu, 11 Sep 2014, Dmitry Stogov wrote: Please take a look and make your opinion. https://wiki.php.net/rfc/fix_list_behavior_inconsistency This inconsistency might be interpreted like a bug, but fixing it might break existing PHP code (at least my attempt to fix it in documented way broke few phpt tests). But at least your option Enable string handling in all cases makes additional things work, instead of making things *no longer* work. I realize that: list($a,$b) = aa;var_dump($a,$b); Will now start returning something else than NULL, but I would almost consider that a bug. I would definitely elect to vote for Enable string handling in all cases as it IMO actually fixes something. cheers, Derick
Re: [PHP-DEV] [RFC] Fix list() behavior inconsistency
Hi! Please take a look and make your opinion. https://wiki.php.net/rfc/fix_list_behavior_inconsistency This inconsistency might be interpreted like a bug, but fixing it might break existing PHP code (at least my attempt to fix it in documented way broke few phpt tests). I think it makes sense to make list($a, $b, ...) = something to mean: $a = something[0] $b = something[1] ...etc... This is how it works in most cases, not sure why it doesn't work when something is a string literal, but I think it should work the same too. -- Stanislav Malyshev, Software Architect SugarCRM: http://www.sugarcrm.com/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [RFC] Fix list() behavior inconsistency
On 14/09/14 07:48, Stas Malyshev wrote: Please take a look and make your opinion. https://wiki.php.net/rfc/fix_list_behavior_inconsistency This inconsistency might be interpreted like a bug, but fixing it might break existing PHP code (at least my attempt to fix it in documented way broke few phpt tests). I think it makes sense to make list($a, $b, ...) = something to mean: $a = something[0] $b = something[1] ...etc... This is how it works in most cases, not sure why it doesn't work when something is a string literal, but I think it should work the same too. Isn't this just a side affect of making a simple string also look like an array? One has to assume first that what is returned is a simple byte string array while currently is IS possible that it will contain unicode characters? So should it not be looked at n the context of the whole PHP7 discussion rather than trying to fix more edge cases in isolation? -- Lester Caine - G8HFL - Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk Rainbow Digital Media - http://rainbowdigitalmedia.co.uk -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [RFC] Fix list() behavior inconsistency
On 14/09/2014 08:54, Lester Caine wrote: One has to assume first that what is returned is a simple byte string array while currently is IS possible that it will contain unicode characters? Well, currently, every single string function in PHP treats a string as a simple byte array, apart from those in the mbstring and intl extensions. What's more, there isn't really a single meaning of the term Unicode character - at its simplest, there are code points, but they're not necessarily the most useful unit; as I mentioned before [1], people often actually want to work with grapheme clusters, what a writer of the language would consider a single character. If more integrated Unicode support is ever added, it will presumably be in the form of a new data type; if that type implements $foo[0] to mean first grapheme cluster, then it would be natural for list($a,) = $foo to do the same. But there is no reason for that to stop list($a,) = $foo being equivalent to $foo[0] for existing strings, and mean first byte. [1] http://news.php.net/php.internals/72914 -- Rowan Collins [IMSoP] -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] [RFC] Fix list() behavior inconsistency
Hi, Please take a look and make your opinion. https://wiki.php.net/rfc/fix_list_behavior_inconsistency This inconsistency might be interpreted like a bug, but fixing it might break existing PHP code (at least my attempt to fix it in documented way broke few phpt tests). Thanks. Dmitry.