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 262The 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.