我在返回数组之前有一个'echos'函数。将该函数分配给下面的变量时,它会执行输出echo的函数。这个预期的行为,因为我认为分配给变量应该只做那个,分配?感谢
function check($link) {
//.....
echo "some text ";
return $array;
}
$test = check($link);
答案 0 :(得分:0)
它逐行执行,所以当它被echo "some text ";
打印时,它会返回数组。
答案 1 :(得分:0)
是的,这是预期的行为。您正在创建副作用(回显),同时还分配给变量。您正在同时执行所谓的查询和命令,这是完全合法的。
答案 2 :(得分:0)
当你为一个变量分配一个函数时,php正在执行的是执行函数以获取其返回值,然后将该值赋给变量。
所以php执行你的函数(因此执行echo语句),然后将返回值($ array)赋给$ test。
答案 3 :(得分:0)
PHP解释器将在您的函数中执行任何操作。 echo
函数相当于Java中的System.out.print
,C#中的Console.WriteLine
和C ++中的cout
。这就像将一系列文本写入标准输出一样。这里唯一的区别是,您使用客户端的Web浏览器而不是控制台,因此提到的字符序列将被发送回HTTP响应正文中的浏览器。
答案 4 :(得分:0)
你是对的。
在PHP中,尽管看起来很奇怪,但它确实如此。
但是,作为编程设计,强烈建议将显示与编程逻辑分开:
/* array */ function check($link) {
/* array */ $Result = array();
//...
$Result[] = "Sun";
//...
$Result[] = "Mercury";
$Result[] = "Venus";
$Result[] = "Earth";
//...
return $Result;
}
/* array */ $test = check($link);
但是,有时,直接打印到浏览器控制台,可能会有帮助,以便进行调试:
/* array */ function check($link) {
/* array */ $Result = array();
//...
// uncomment, just in severe cases
//echo("link: [" . $link . "]");
//...
$Result[] = "Sun";
//...
$Result[] = "Mercury";
$Result[] = "Venus";
$Result[] = "Earth";
//...
return $Result;
}
/* array */ $test = check($link);
只有我的2美分,干杯。