PHP standards: calling reset() on a function return value throws warnings
-
Hi,
We’ve been getting this warning in our environments:
PHP Strict standards: Only variables should be passed by reference in /srv/www/site/wp-content/plugins/autoptimize/classes/autoptimizeStyles.php on line 262
The warning is caused by the following code:
if (strpos($iurl,'?') !== false) { $iurl = reset(explode('?',$iurl)); }
The problem here is that
reset()
takes its parameter by reference, and so requires a variable while you’re passing it a function return value directly.I would advise against using the code above, though, because the output of
reset( explode() )
is non-obvious. Most people I know usereset()
to move back the array pointer and are not even aware that it also returns the first element.parse_url()
is the most suitable approach for this, but list destructuring (list( $iurl ) = explode( '?', $iurl );
) or tokenization ($iurl = strtok( $iurl, '?' );
) would work too.Hope this helps.
Best,
Luís
- The topic ‘PHP standards: calling reset() on a function return value throws warnings’ is closed to new replies.