- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
虽然我发现了一些关于 PHP 中 echo 和 print_r() 之间一般差异的讨论(例如 What's the difference between echo, print, and print_r in PHP? ),但我遇到的 AJAX 调用的所有教程和答案都说 PHP 应该 echo 结果,然后就死了。
在返回简单字符串的实验中,使用 console.log 显示时,我没有看到两者之间有任何区别。
使用 echo 与 print_r 时,返回到 AJAX 调用的内容是否有显着差异。并不是说我发现使用 echo 有什么问题,但是当我在函数中早些时候使用 print_r 进行调试时,我确实得到了意想不到的结果。
最佳答案
PHP 中最常见的内置输出函数是: echo
, print
, printf
, print_r
, var_dump
,和var_export
。它们都是为了输出数据而设计的,尽管方式略有不同。这就是为什么每个功能都有特定的用例。
echo:最臭名昭著的。您应该使用它来将数据输出到 AJAX 调用者。它简单而有效。它实际上是一种语言构造,因此不需要您使用括号。您只需编写 echo 'string';
或 echo $something;
等即可。
它还支持多个逗号分隔值,使其在各种用例中都很方便;例如,echo 'string1'、'string2'、'string3';
。请注意,echo 返回 null
(什么也没有)。
1
。如果您愿意,可以使用 print 代替 echo,但许多流行的 PHP 项目都有代码标准,要求您不要这样做。因此,print 或多或少已经成为 PHP 中未使用(或很少)的函数。sprintf()
旨在输出格式化字符串。它稍微复杂一些,但确实有特定的用例。例如,这些通常用于将整数输出为二进制数或八进制数,以进行翻译,以及 PHP.net 上详细记录的许多其他选项 - 这是一个单独的主题。print_r、var_dump 和 var_export:这些最常用于以某种方式调试代码或测试代码时。您很少会在生产代码中找到它们的用例。也就是说,这些允许您传入复杂的数据类型,例如整个数组,并递归地 print_r 转储整个数组以进行分析。 var_dump 做了几乎相同的事情,但使用了稍微不同的方法,有时可能很有用。 var_export 的优点是输出可解析的字符串。
print_r和var_export都支持可以“返回”正常输出值的参数,该值可以是方便的功能。 var_dump 无法做到的事情。
关于php - 向 AJAX 调用提供结果时 print_r 和 echo 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47168412/
我想打印数组变量$foo。所以我已经完成了 {$foo|@print_r} 这个,但是它的打印像 "{$foo|@print_r}" 在首页上。 我正在使用 Oxied eshop 并将 smarty
我正在使用 print_r 作为数组,但它没有在浏览器中以“人类可读”的方式打印它。它只是像我回应的那样打印: Array ( [0] => Array ( [uid1] => 012345 [uid
我希望能够根据 print_r 数组语句的内容生成一个格式良好的表格,其中包含行和列? 有什么想法吗? 最佳答案 这是一种使用 html pre 标记打印漂亮数组的非常简单的方法: '; print_
我正在尝试调试为什么以下查询不返回结果集。当我尝试使用 print_r 调试它以查看此 sql 返回的内容时,我得到了 sql 语句本身而不是结果集。有人可以帮我解决为什么这不返回结果集吗? 编辑:我
这个问题在这里已经有了答案: Make var_dump look pretty (15 个回答) 6 个月前关闭。 我用了print_r函数打印从数据库中的表中获取的数组。而不是像这样格式良好的数组
这个问题在这里已经有了答案: 关闭10 年前。 Possible Duplicate: putting print_r results in variable 我正在抛出异常并尝试在异常中包含一个变
我正在尝试调试为什么以下查询不返回结果集。当我尝试使用 print_r 调试它以查看此 sql 返回的内容时,我得到了 sql 语句本身而不是结果集。有人可以帮我解决为什么这不返回结果集吗? 编辑:我
在 Python 中是否有可能做类似的事情: echo 'Content of $var is ', print_r($var, TRUE); 在 PHP 中? 我有一个变量 var,我想将它的内容以
我再次寻求帮助。 我找到了这个停用词脚本 - 我基本上从字符串中删除了所有常用词。 tag’s keyword attribute is not the page rank panacea it o
我在使用 print_r 函数时遇到了一些问题。毫无疑问,我在它的操作中误解了一些东西......基本上,我在一个类中有一个对象数组,如下所示: public $fields = array(); 这
所以我有以下代码: $sql = mysql_query("SELECT result FROM table1"); $result = mysql_fetch_array($sql); print_
当我运行以下代码时: echo $_POST['zipcode']; print_r($lookup->query($_POST['zipcode'])); ?> 结果像这样连接在一行上:10952A
我有一个类,它实际上对一个复杂的数组进行操作,以使操作更简单。原始数组的格式如下所示: array( array( "name" =>"foo", "type"
我试图在我的 php 中获取一个变量转储,所以我正在使用: print_r(get_defined_vars()); 生成它,但无论我在哪里插入代码,它都会导致空白页。有什么想法吗? 最佳答案 其中一
在这种情况下,如何使用 at 符号 (@) - @order 访问属性?这是 print_r 函数的输出: [0] => stdClass Object ( [@order]
这个问题已经有答案了: How create an array from the output of an array printed with print_r? (11 个回答) 已关闭10 年前。
print_r(array('name'=> 'bob', 'age' => 20, 'sex' => 'man')); 然后: Array { [name] => bob, [age
我知道每当我写的时候 $food = array('fruit'=>'apple', 'veggie'=>'tomato', 'bread'=>'wheat'); $text = print_r($f
我在数据库中创建了一个成员表,并输入用户名行作为用户,输入密码行作为密码。然后我编写了一个脚本,必须在数据库中显示密码和用户名。就是这样: "; $username = array($db_field
我正在尝试将 print_r 输出插入数据库? 在数据库中,结果是1? 如何解决这个问题? prepare($SQL); $q->bindValue(":process_id", $p
我是一名优秀的程序员,十分优秀!