php等待函数

php等待函数,php,function,wait,Php,Function,Wait,这是一些PHP代码示例 <?php function myFunc() { echo "blue"; } for ($i=1;$i<=5;$i++) { echo "I like the colour " . myFunc() . "</br>"; } ?> 在我的实际项目中,myFunc正在进行一个MySQL调用(如果提到这一点有什么不同的话)。如何使循环在继续之前等待该函数返回,否则输出会像上面那样出现顺序问题。问题是,myFunc()在连接

这是一些PHP代码示例

<?php
function myFunc() {
    echo "blue";
}

for ($i=1;$i<=5;$i++) {
    echo "I like the colour " . myFunc() . "</br>";
}
?>

在我的实际项目中,myFunc正在进行一个MySQL调用(如果提到这一点有什么不同的话)。如何使循环在继续之前等待该函数返回,否则输出会像上面那样出现顺序问题。

问题是,
myFunc()
在连接之前进行求值。从
myFunc()
返回值,并在循环中使用该值,而不是在
myFunc()

中回显。问题是在串联之前对
myFunc()
求值。从
myFunc()
返回值,并在循环中使用该值,而不是在
myFunc()
中回显,因为您不想在函数中使用
echo
。改为使用
return


当您对循环求值时,首先对函数求值,以查看是否有要放入字符串的返回值。由于您调用
echo
而不是
return
,因此函数的回音正在发生,然后循环的回音正在发生。

您不想在函数中使用
echo
。改为使用
return


当您对循环求值时,首先对函数求值,以查看是否有要放入字符串的返回值。由于您调用了
echo
而不是
return
,因此函数的echo正在发生,然后循环的echo正在发生。

使用return语句:

 <?php
 function myFunc() {
     return "blue";
 }

使用return语句:

 <?php
 function myFunc() {
     return "blue";
 }

尝试将代码更改为:

<?php
function myFunc() {
    return "blue";
}

for ($i=1;$i<=5;$i++) {
    echo "I like the colour " . myFunc() . "</br>";
}
?>


注意
返回
而不是
回显

尝试将代码更改为以下内容:

<?php
function myFunc() {
    return "blue";
}

for ($i=1;$i<=5;$i++) {
    echo "I like the colour " . myFunc() . "</br>";
}
?>
  <?php
  function myFunc() {
      return "blue";
  }

  for ($i=1;$i<=5;$i++) {
      $color = myFunc();
      echo "I like the colour " . $color . "</br>";
  }
  ?>

注意
返回
而不是
回显


  <?php
  function myFunc() {
      return "blue";
  }

  for ($i=1;$i<=5;$i++) {
      $color = myFunc();
      echo "I like the colour " . $color . "</br>";
  }
  ?>

这不是你的问题,你的问题是你有两个动作

you are concatenating a string
you are calling a function.
结果字符串是“我喜欢颜色”之间的连接。myFunc()。“”但在连接这些值之前,必须先执行myFunc()

执行myFunc时,将“蓝色”写入输出

然后,结果是(对于每一行)

蓝色我喜欢这种颜色

(首先,对myFunc()求值,然后将返回值(void)连接到静态字符串

也许你想这样做:

<?php    
function myFunc() {
        return "blue";
    }
for ($i=1;$i<=5;$i++) {
    echo "I like the colour " . myFunc() . "</br>";
}

这不是你的问题,你的问题是你有两个动作

you are concatenating a string
you are calling a function.
结果字符串是“I like The color”.myFunc().”之间的连接,但在连接这些值之前,必须执行myFunc()

执行myFunc时,将“蓝色”写入输出

然后,结果是(对于每一行)

蓝色我喜欢这种颜色

(首先,对myFunc()求值,然后将返回值(void)连接到静态字符串

也许你想这样做:

<?php    
function myFunc() {
        return "blue";
    }
for ($i=1;$i<=5;$i++) {
    echo "I like the colour " . myFunc() . "</br>";
}

那么,为什么输出会出现问题?@javano:这就是PHP的工作原理。echo执行任何输出之前,都会执行
echo
语句中的函数调用,因此,函数中的echo会在父echo调用的输出发生之前执行/输出。这让我们完全明白了,facepalm。谢谢:DSo为什么输出是ut不正常?@javano:PHP就是这样工作的。
echo
语句中的函数调用在echo完成任何输出之前执行,因此函数中的echo在父echo调用的输出发生之前执行/输出这就完全有意义了,facepalm。谢谢你:DDamn it,现在人们已经对它进行了示例对我来说,这似乎是盲目的显而易见。谢谢你澄清,完全有道理:)该死,现在人们已经在我看来,这似乎是盲目的显而易见。谢谢你澄清,完全有道理:)