这是一些示例PHP代码;
<?php
function myFunc() {
echo "blue";
}
for ($i=1;$i<=5;$i++) {
echo "I like the colour " . myFunc() . "</br>";
}
?>
这会生成输出;
blueI like the colour
blueI like the colour
blueI like the colour
blueI like the colour
blueI like the colour
在我的实际项目中,myFunc正在进行MySQL调用(如果它有任何不同之处)。如何在循环之前使循环等待该函数返回,否则输出如上所述无序。
答案 0 :(得分:3)
问题是在连接之前评估myFunc()
。从myFunc()
返回值,并在循环中使用该值,而不是在myFunc()
中回显。
答案 1 :(得分:3)
尝试将代码更改为:
<?php
function myFunc() {
return "blue";
}
for ($i=1;$i<=5;$i++) {
echo "I like the colour " . myFunc() . "</br>";
}
?>
请注意return
而不是echo
。
答案 2 :(得分:2)
您不希望在函数中使用echo
。请改用return
。
当您评估循环时,首先评估函数以查看是否存在要放入字符串的返回值。由于你调用了echo
而不是return
,函数的回声正在发生,然后循环的回声正在发生。
答案 3 :(得分:1)
使用return语句:
<?php
function myFunc() {
return "blue";
}
答案 4 :(得分:1)
<?php
function myFunc() {
return "blue";
}
for ($i=1;$i<=5;$i++) {
$color = myFunc();
echo "I like the colour " . $color . "</br>";
}
?>
答案 5 :(得分:1)
这不是你的问题,你的问题是你有两个动作。
you are concatenating a string
you are calling a function.
结果字符串是“我喜欢颜色”之间的连接。 myFunc()。 “”,但在连接这些值之前,必须执行myFunc()。
当你执行myFunc时,你正在输出“blue”。
然后,结果是(对于每一行)。
blueI like the colour
(首先,评估myFunc()然后将返回值(void)连接到静态字符串。
也许你想这样做:
<?php
function myFunc() {
return "blue";
}
for ($i=1;$i<=5;$i++) {
echo "I like the colour " . myFunc() . "</br>";
}
&GT;