2012-09-07 10 views
49

Eventuali duplicati:
Call-time pass-by-reference has been deprecatedchiamata-time pass-by-di riferimento è stato rimosso

Mentre può essere documentato da qualche parte su internet, non riesco a trovare una soluzione al mio problema . Dall'aggiornamento di PHP 5.4, i riferimenti pass-by sono stati rimossi.

Ora ho un problema con questa sezione di codice, e spero che qualcuno possa vedere che cosa sto cercando di fare con esso in modo che possano eventualmente aiutarmi con una soluzione per superare il mio problema di riferimento pass-by-riferimento.

Di seguito si riporta il codice in questione:

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

Cosa succede se si rimuovono i segni &? –

+0

Ottengo il seguente, sulla linea 125; che è 'if (socket_select ($ read, $ write = NULL, $ except = NULL, $ tv_sec = 5) <1)' ** Strict Standard: solo le variabili devono essere passate per riferimento ** -Nick –

+0

@xNickD: sembra del tutto estraneo – newacct

risposta

91

Solo tempo di chiamata pass-by-reference rimosso. Quindi cambiare:

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

A tal:

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

&$this dovrebbe mai essere necessario dopo PHP4 comunque periodo.

Se è assolutamente necessario $ client da passato per riferimento, aggiornare la funzione ($ func) firma invece (function func(&$client) {)

+0

Ciao, Explosion Pills, - Stranamente ottengo più errori se faccio così. ** rigidi standard: Solo le variabili devono essere passati per riferimento ** Non sono sicuro di cosa fare. Mi ha confuso. : \ –

+0

Ciao, grazie per il post, non sono una persona PHP ma sto lavorando su un tema di wordpress che mostrava un errore e ho risolto il problema con la tua tecnica. Ciò che è '& $ this' so $ questo, ma cosa succede dopo' & $ this' – Nofel

+0

A meno che non si stia utilizzando php 4 che è dubbio che non è necessario '& $ this'. Anche se stai usando il php 5 non dovresti averne bisogno. È solo un vecchio metodo per assicurarsi che l'auto riferimento di riferimento '$ this' sia passato per riferimento, ma dal momento che è già un riferimento a un oggetto non è necessario. –

Problemi correlati