PHP回显来自同一个类中另一个函数的返回值

时间:2016-05-19 14:07:36

标签: php function

我无法在同一个类的函数内回显函数的结果。

class className 
    {
         function first_function()
         {
             echo "Here it is: " . $this->second_function('test');
         }

         function second_function($string)
         {
             return $string;
         }
    }

仅返回:

Here it is:

在second_function()中回显$ string会导致:

testHere it is:

有什么建议吗?谢谢。

2 个答案:

答案 0 :(得分:1)

正如@cherryTD所说,我确实简化了代码。我明白为什么它没有用。在这里发布它可能会帮助别人。 第二个函数是递归函数,但不起作用:

function second_function($var,$cnt) {
    [database query]
    if(result) {
        $cnt++;
        $this->second_function($var, $cnt);
    } else {
        return $var;
    }
}

但这确实有效:

function second_function($var,$cnt) {
    [database query here]
    if(result) {
        $cnt++;
        return $this->second_function($var, $cnt);
    } else {
        return $var;
    }
}

从内部调用函数时需要返回

这样:

$this->second_function($var, $cnt);

必须是:

return $this->second_function($var, $cnt);

感谢大家的回复。

答案 1 :(得分:0)

class className 
    {
         function first_function()
         {
             echo "Here it is: " . $this->second_function('test');
         }

         function second_function($string)
         {
             return $string;
         }
    }


    $obj = new className();
   $a=  $obj->first_function();
   echo $a;