回归和回声

时间:2014-12-17 13:10:25

标签: php return echo

如果我在PHP函数返回之前回显某些内容会发生什么?这方面的一个例子如下:

protected function getStockFromGarp($data) {
    echo $data." stock returned from call ".$url;            
    return $data; // Returning $data for future date
}

public function updateStock($sku) {
    $entry->this = getStockFromGarp($sku);
}

调用updateStock($ var)时,$entry->this的值是什么?

3 个答案:

答案 0 :(得分:1)

PHP将首先执行echo,然后返回$ data。 Echo输出数据但不会阻止PHP进行rparsing。

也许这会让它更清晰:

class Conversation
{
    public $knowledge = array();

    public function say($string)
    {
        // echo $string;
        return $string;
    }

    public function listen($string)
    {
        $this->knowledge[] = $string;
    }
}

$me = new Conversation();
$johnDoe = new Conversation();

$johnDoe->listen($me->say("I've got a secret"));
$me->listen($johnDoe->say("Tell me!"));

如果你使用echo,我会说我有一个秘密,但John Doe永远无法听到我的声音。

答案 1 :(得分:0)

结果($ entry-> this)与没有echo的结果相同。

答案 2 :(得分:0)

Echo输出数据,它不会返回数据。使用echo不会跳过return子句。它本身也不会编辑数据,因此您的$data变量不会被更改,并且返回与用作参数时完全相同。