2012-09-07 19 views
49

Duplicar posibles:
Call-time pass-by-reference has been deprecatedde llamadas en tiempo pasan por referencia se ha eliminado

Si bien puede ser documentado algún lugar de Internet, no puedo encontrar una solución a mi problema . Desde la actualización de PHP 5.4, se han eliminado las referencias de paso por paso.

Ahora tengo un problema con esta sección del código, y espero que alguien pueda ver lo que estoy tratando de hacer con él para que puedan ayudarme con una solución para superar mi problema de pasar por referencia.

A continuación se muestra el código en cuestión:

public function trigger_hooks($command, &$client, $input) { 
    if(isset($this->hooks[$command])) { 
     foreach($this->hooks[$command] as $func) { 
      PS3socket::debug('Triggering Hook \'' . $func . '\' for \'' . $command . '\''); 
      $continue = call_user_func($func, &$this, &$client, $input); 
      if($continue === FALSE) { 
       break; 
      } 
     } 
    } 
} 

.

+0

¿Qué ocurre si acaba de quitar los símbolos de unión? –

+0

Obtengo lo siguiente, en la línea 125; que es 'if (socket_select ($ read, $ write = NULL, $ excepto = NULL, $ tv_sec = 5) <1)' ** Estándares estrictos: solo se deben pasar las variables por referencia ** -Nick –

+0

@xNickD: eso parece completamente no relacionado – newacct

Respuesta

91

Solo tiempo de llamada se elimina la referencia de paso por referencia. Así que cambia:

call_user_func($func, &$this, &$client ... 

A esto:

call_user_func($func, $this, $client ... 

&$this No debe ser necesario después de PHP4 periodo de todos modos.

Si necesita absolutamente $ cliente que se pasa por referencia, actualice el (func $) firma de la función en su lugar (function func(&$client) {)

+0

Hola, Píldoras de Explosión, - Por extraño que parezca, recibo más errores si lo hago. ** Estándares estrictos: solo se deben pasar las variables por referencia ** No estoy seguro de qué hacer. Me confundió : \ –

+0

Hola, gracias por la publicación, no soy una persona de PHP pero estoy trabajando en un tema de WordPress que mostró un error y lo solucioné usando tu técnica. ¿Qué es '& $ this'? Sé $ esto, pero lo que sucede después de' & $ this' – Nofel

+0

A menos que esté usando php 4, lo cual es dudoso, no necesita '& $ this'. Incluso si está utilizando desde php 5, no debería necesitarlo. Es solo un método antiguo para asegurarse de que la referencia del objeto '$ this' se pasó por referencia, pero como ya es una referencia de objeto, no es necesario. –

Cuestiones relacionadas