虽然我已经找到一些关于PHP中的echo和print_r()之间的一般差异的讨论(例如,What's the difference between echo, print, and print_r in PHP?),但我遇到的所有AJAX调用的教程和答案都说PHP应该 echo 结果,然后死掉。
在一个返回简单字符串的实验中,当使用console.log显示时,我发现两者之间没有任何区别。
使用echo vs print_r时,返回到AJAX调用的内容是否有任何显着差异。并不是说我看到使用echo有什么问题,但是当我在函数中使用print_r进行调试时,我确实得到了意想不到的结果。
答案 0 :(得分:3)
PHP中最常见的内置输出函数有:echo
,print
,printf
,print_r
,var_dump
和{{3} }。它们都旨在输出数据,尽管方式略有不同。这就是为什么有与每个功能相关的特定用例的原因。
回声:最臭名昭着的。这是您应该用于将数据输出到AJAX调用者的内容。它简单有效。它实际上是一种语言结构,所以它并不要求你使用括号。您只需撰写echo 'string';
或echo $something;
等
它还支持多个以逗号分隔的值,使其在各种用例中都很方便;例如,echo 'string1', 'string2', 'string3';
。请注意, echo 会返回null
(无)。
1
。如果您愿意,可以使用打印而不是 echo ,但许多流行的PHP项目都有代码标准,要求您不要这样做。因此, print 或多或少地变成了PHP中未使用的(或很少使用)功能。var_export
旨在输出格式化字符串。它稍微复杂一些,但确实有特定的用例。例如,这些通常用于输出整数作为二进制数或八进制数,用于翻译,以及PHP.net中详细记录的许多其他选项 - 这是一个单独的主题。print_r , var_dump 和 var_export :这些在调试代码或以某种方式测试代码时最常用。您将很少在生产代码中找到它们的用例。也就是说,这些允许您传递复杂数据类型(如整个数组)和 print_r 递归,以转储整个数组进行分析。 var_dump 几乎完全相同,但使用的方法略有不同,有时可能会有用。 var_export 具有输出可解析字符串的优势。
print_r 和 var_export 都支持可以返回'的参数。它通常会输出的值,这可能是一个方便的功能。 var_dump 不具备的功能。