web-dev-qa-db-fra.com

La référence au temps d'appel a été supprimée

Duplicate possible:
Le temps de passage d'appel par référence est obsolète

Bien que cela puisse être documenté quelque part sur Internet, je ne trouve pas de solution à mon problème. Depuis la mise à jour PHP 5.4), les références de référence ont été supprimées.

Maintenant, j'ai un problème avec cette section de code et j'espère que quelqu'un pourra voir ce que j'essaie de faire pour pouvoir m'aider avec une solution permettant de résoudre mon problème de référence par référence.

Ci-dessous le code en question:

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;
            }
        }
    }
}

.

51
Sam Smith

Seul durée de l'appel, la référence par référence est supprimée. Alors changez:

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

Pour ça:

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

&$this Ne devrait jamais être nécessaire après la période PHP4.

Si vous avez absolument besoin que $ client soit passé par référence, mettez à jour la signature de la fonction ($ func) (function func(&$client) {)

91
Explosion Pills