On Sun, Oct 30, 2016 at 1:48 PM, Alice Wonder <al...@librelamp.com> wrote:
> On 10/30/2016 05:31 AM, Rasmus Schultz wrote: > >> On second thought, I agree with that - changing reset() and end() >> doesn't make sense, because people know them and expect them to work >> in a certain way. Likely a lot of people would actually continue to >> use them with intermediary variables the way they do today. >> > > Today? > > In PHP 5.6.x I didn't have to use intermediate variables. > You did. You simply suppressed the error in PHP 5. In PHP 7 the error classification changed, so you're no longer suppressing it. See: https://3v4l.org/2R8Vp Prior to the PHP 7 release I suggested marking a number of functions (array_pop/shift, reset, end) as prefer-ref, so they could be used without warning, see http://markmail.org/message/peefyi46iz2amdbq. Nothing really came of it at the time. Just mentioning it here because we can already avoid the warning right now -- we don't have to drop the IAP first. Both issues are independent. However, introducing array_first/last is still better than using reset/end etc, because these functions can easily trigger an unnecessary array copy, while array_first/last wouldn't have that problem. Nikita > > Being required to use them was new with PHP 7 and I suspect you will find > a lot of sites still using pre 7 because they haven't taken the time to > make sure every app they run works in PHP 7. > > All my production servers still run 5.6.x for that reason, I'm only now > starting to port the apps I can now that it appears the PECL modules I need > have finally all been updated. > > The php apps I am fixing are currently littered with code like this: > > > $SEVENFIX = explode('.', $rs[0]->cover); > if(end($SEVENFIX) == "whatever") { > // do stuff > } > > before trying the app in my 7.1.0RCx test servers they worked just fine as > > if(end(explode('.', $rs[0]->cover)) == "whatever") { > // do stuff > } > > So I suppose some people might "continue" to use them with intermediary > but a lot of code that hasn't been ported to 7 doesn't currently. > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >