Error Strict Standards:
Publicado por Salva (5 intervenciones) el 22/12/2017 23:28:37
Tengo una conexion a un webservice externo. Estoy trabajando con PHP 5.6 desde hace un año con dicha conexión y todo a funcionado bien.
Desde hace un par de dias me sale el siguiente error:
Strict Standards: Only variables should be passed by reference in /customers/7/2/f/sespo.es/httpd.www/zonasocios/pruebaconexion.php on line 22 Strict Standards: Only variables should be passed by reference in /customers/7/2/f/sespo.es/httpd.www/zonasocios/pruebaconexion.php on line 17 Strict Standards: Only variables should be passed by reference in /customers/7/2/f/sespo.es/httpd.www/zonasocios/pruebaconexion.php on line 17 Strict Standards: Only variables should be passed by reference in
y la linea 17 del php que me genera el error es la siguiente:
$phpinfo[end(array_keys($phpinfo))][$match[2]] = isset($match[4]) ? array($match[3], $match[4]) : $match[3];
En varios foros he leido que suele pasar al actualizarse la version de php a la 5.6, pero como he dicho antes, llevo trabajando con la 5.6 desde hace un año. Tambien he visto en este foro que la manera de solucionarlo es tirando el array a una variable intermedia, pero no he sabido aplicarlo. A que es debido esto, y cual puede ser la solucion?
Os pego el codigo entero por si os sirve de mas ayuda:
Muchas gracias por vuestra ayuda.
Desde hace un par de dias me sale el siguiente error:
Strict Standards: Only variables should be passed by reference in /customers/7/2/f/sespo.es/httpd.www/zonasocios/pruebaconexion.php on line 22 Strict Standards: Only variables should be passed by reference in /customers/7/2/f/sespo.es/httpd.www/zonasocios/pruebaconexion.php on line 17 Strict Standards: Only variables should be passed by reference in /customers/7/2/f/sespo.es/httpd.www/zonasocios/pruebaconexion.php on line 17 Strict Standards: Only variables should be passed by reference in
y la linea 17 del php que me genera el error es la siguiente:
$phpinfo[end(array_keys($phpinfo))][$match[2]] = isset($match[4]) ? array($match[3], $match[4]) : $match[3];
En varios foros he leido que suele pasar al actualizarse la version de php a la 5.6, pero como he dicho antes, llevo trabajando con la 5.6 desde hace un año. Tambien he visto en este foro que la manera de solucionarlo es tirando el array a una variable intermedia, pero no he sabido aplicarlo. A que es debido esto, y cual puede ser la solucion?
Os pego el codigo entero por si os sirve de mas ayuda:
1
2
3
4
5
6
7
8
9
10
11
12
13
ob_start();
phpinfo();
$phpinfo = array('phpinfo' => array());
if(preg_match_all('#(?:<h2>(?:<a name=".*?">)?(.*?)(?:</a>)?</h2>)|(?:<tr(?: class=".*?")?><t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>)?)?</tr>)#s', ob_get_clean(), $matches, PREG_SET_ORDER))
foreach($matches as $match)
if(strlen($match[1]))
$phpinfo[$match[1]] = array();
elseif(isset($match[3]))
"""" Linea que genera el error """"" $phpinfo[end(array_keys($phpinfo))][$match[2]] = isset($match[4]) ? array($match[3], $match[4]) : $match[3];
else
$phpinfo[end(array_keys($phpinfo))][] = $match[2];
Muchas gracias por vuestra ayuda.
Valora esta pregunta
0