php等待功能

时间:2011-06-23 16:12:21

标签: php function wait

这是一些示例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调用(如果它有任何不同之处)。如何在循环之前使循环等待该函数返回,否则输出如上所述无序。

6 个答案:

答案 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;