Tenia un código que trabajaba bien antes:
$ext = end(explode('.', $files[$i]));
no mostraba ningún mensaje hasta que un día apareció esto.
Strict Standards: Only variables should be passed by reference in /basecentral/apache/web/aplicacion/protected/legacy/LegacyLoader.php on line 10.
Esto se debió a que se actualizó php 5.2 del servidor a php 5.5. La solución fue la siguiente:
$tmp = explode('.', $files[$i]); $ext = end($tmp);
Es decir almacenar el array resultante de la función explode en una variable y por último pasárselo a la función end().
Esto es debido a que la función end según la documentación: end() avanza el puntero interno del array hasta su último elemento y devuelve su valor.
Este array es pasado por referencia porque es modificado por la función. Esto significa que se debe pasar una variable real y no una función que devuelve un array porque solamente variables puede ser pasadas por referencia.
Comentarios