1

我对 php 中的某些脚本有疑问。我试图找出发生了什么,所以我找到了错误出现的地方。

 function doSomething($var){

  $sql= "SELECT * FROM products";
  $res = $mysqli->query($sql);
  $spts=array();
        for ($i = 0; $i <= $res->num_rows - 1; $i++) {
            $res->data_seek($i);
            $spts[$i] = $res->fetch_assoc();
        }

  **return $var;**
  foreach($spts as $spt){
    **return $var;**
  }

正如您在下面的代码中看到的,我添加了两个返回语句。这里的错误是,当我在 foreach 语句之前返回 $var 时,它会返回我传递给函数的值,但是在 foreach 中,即使我把它放在第一行,它也不会返回任何东西。

我一直在寻找另一个问题,但没有人谈论这个特定的错误。我不知道我是否做错了什么。为什么 $var 会失去它的价值?

4

1 回答 1

0

我敢打赌你$spts是空的,因此没有执行 foreach 循环,因此 foreach 循环的 return 没有返回任何内容。(PHP 跳过循环,函数来到自然的 EOF-Return。)

试试看return count($spts),如果你有结果,以及 foreach 的至少一次迭代。(但在进入 foreach之前将其返回,否则您将再次面临同样的问题。)

您也可以在 foreach 之后添加“无结果”返回:

foreach($spts as $spt){
    return $var;
}
return "no result";
于 2013-07-23T08:40:01.033 回答