繁体   English   中英

返回并回显

[英]Return and 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值?

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

也许这将使其更加清晰:

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永远听不到我的声音。

结果($ entry-> this)与不使用echo相同。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM