Re: Reference return buggy notice?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ondra Zizka wrote:
Hello,

please look at the code bellow and tell if it does not conform to rules of returning a reference from a function.
In the first method, I return reference to $sRet variable, and PHP is quiet.
But in the second, PHP says:

Notice: Only variable references should be returned by reference in C:\web\php_bug_reference_return.php on line 8 // return $ref =& $this->ReturnReference(); (Note that the notice does not concern the first method as the notice appears even if I remove references from the first method.)

But I am still just returning a reference to a variable, so I guess it's actually correct, isn't it?

Thanks for oppinions.
Ondra Zizka


<?php
class A {
 function &ReturnReference(){
  $sFoo = "Hi.";
  return $sRet =& $sFoo;
 }
 function &RequireReference(){
  return $ref =& $this->ReturnReference();
 }
}

$oA = new A();
$ref = $oA->RequireReference();
?>

When you define a function as returning a reference (with the & prefix) you do not need to get the reference yourself, PHP will do it for you. The following should work fine...

<?php
    class A
    {
        function & ReturnReference()
        {
            $sFoo = "Hi.";
            return $sFoo;
        }
		
        function & RequireReference()
        {
            $retval = $this->ReturnReference();
            return $retval;
        }
    }
	
    $oA = new A();
    $ref = $oA->RequireReference();
?>

-Stut

--
http://stut.net/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux