Call-time pass-by-reference has been removed

114,399

Only call time pass-by-reference is removed. So change:

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

To this:

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

&$this should never be needed after PHP4 anyway period.

If you absolutely need $client to be passed by reference, update the function ($func) signature instead (function func(&$client) {)

Share:
114,399
Sam Smith
Author by

Sam Smith

Updated on July 09, 2022

Comments

  • Sam Smith
    Sam Smith almost 2 years

    Possible Duplicate:
    Call-time pass-by-reference has been deprecated

    While it may be documented somewhere on the internet, I cannot find a solution to my problem. Since the PHP 5.4 update, pass-by-references have been removed.

    Now I have a problem with this section of code, and I hope somebody can see what I'm trying to do with it so that they can possibly help me with a solution to overcome my pass-by-reference problem.

    Below is the code in 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;
                }
            }
        }
    }
    

    .

  • Sam Smith
    Sam Smith over 11 years
    Hello, Explosion Pills, - Strangely enough I get more errors if I do such. Strict Standards: Only variables should be passed by reference I'm not sure what to do. It's confused me. :\
  • localhost
    localhost over 6 years
    Hi, Thanks for the post, I am not a PHP person but working on a wordpress theme which showed a error and I fixed using your technique. What is &$this I know $this but what happens after &$this
  • Explosion Pills
    Explosion Pills over 6 years
    Unless you are using php 4 which is doubtful you don't need &$this. Even if you are using as far back as php 5 you shouldn't need it. It's just an old method for making sure the object self reference $this was passed by reference, but since it's already an object reference it's not needed.