[英]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.