【问题标题】:PHP data not returning but it does on diePHP数据没有返回,但它确实死了
【发布时间】:2023-03-14 12:10:01
【问题描述】:

我有这个代码:

    <?php
 function displayList($additional_preferences_list) {
        $output = '<div class="test">';
            foreach($array as $a) {
                $output .= '<div class="testing">'.$a['name'].'</div>';
            }
    ​                
              $output .= '</div>';
              return $output;
}

displayList($additional_preferences_list);
    ?>

如果我 dd($output);否则输入正确的值,就会出现多个带有它的名称的测试 div。如果我返回 $output,它是一个没有名称的单个测试 div。不知道是什么原因造成的

我错过了什么?

【问题讨论】:

  • 你要回到哪里?
  • 它不是一个功能那么你为什么要在这里返回$output
  • return 是从函数内部返回值。
  • 使用当前代码,您正在从函数返回,但您永远不会对返回的值做任何事情。您不会将其分配给另一个变量或将其回显。如果你这样做会发生什么。 $output = displayList(); echo $output;?
  • 请看下面我的回答。您可能有一个特殊字符(不可见)搞砸了 php 解析。

标签: php laravel


【解决方案1】:

TL;DR;

函数响应之间的区别在于"echo" 从服务器向客户端(例如浏览器)发送一些内容,而"return" 向调用者返回一些内容。但是您在这里没有使用函数,这就是为什么 return $output; 没有向您显示任何内容的原因,但是如果使用像 return var_dump($output); 这样的调试,那么您可以看到 div 字符串的完整输出存在 there

return:只是退出当前脚本的执行。

return 将程序控制权返回给调用模块。在被调用模块调用之后的表达式处继续执行。

如果在函数内调用,return 语句会立即结束当前函数的执行,并将其参数作为函数调用的值返回。 return 还会结束 eval() 语句或脚本文件的执行。

因此,您可以使用这些语句和return 如下创建function

<?php
function output(){
    $output = '<div class="test">';
    foreach($array as $a) {
        $output .= '<div class="testing">'.$a['name'].'</div>';
    }
    $output .= '</div>';
    return $output;
}
echo output();
?>

演示: https://3v4l.org/sDXDB

【讨论】:

  • 这就是我所做的。当我在stackoverflow中输入它时,我只是删除了function()。返回或回显输出/函数会返回一个没有名称的 div 类测试。如果我 dd 或 die() 输出它有所​​有正确的数据。
  • 不是我。 PS:如果我用那个替换我的,你的演示数组对我有用。我的多维关联数组一定有问题。
  • 我信守诺言。老实说,他的 IDE/Text Editor 一定有什么东西。我发誓他有一些看不见的字符会导致解析失败。但我会放手的。如果 Sunny 的回答有效,请接受它,让我们把这件事搁置一旁!
  • 阳光明媚!谢谢!我试着告诉这个人 5000 次,他不听。这很酷,他可以让它工作。对于其他隐藏 char 的人来说,这是一本好书:stackoverflow.com/questions/22221042/…
  • @Skintest 也许是这篇文章的侥幸。没什么大不了的。我也使用 PHPStorm。关键是,语法不是问题,很可能是隐藏字符扔掉了东西。除了 return $output;在非函数中,但您也提到 echo 也不起作用。但是,是的,隐藏的角色死亡。好的,你解决了问题,下一步
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
相关资源
最近更新 更多