大家都知道 PHP 中,print_r 函数能够打印输出数组,有些公司还会这样的笔试题:print 和 print_r 的区别,一般的回答便是:print 输出字符串,print_r 输出数组。前两天 coding 时偶然发现给 print_r 传了字符串,竟然正常输出,没有报 warning 和 notice,我就有点奇怪了,print_r 不是只能输出数组和对象的吗,怎么传个字符串也正常输出了。于是看手册,手册说
print_r() displays information about a variable in a way that’s readable by humans. … If given a string, integer or float, the value itself will be printed. If given an array, values will be presented in a format that shows keys and elements. Similar notation is used for objects.
并没有任何地方说明 print_r 只能用于输出数组和对象,对于普通的 string integer float 型参数直接输出,相当于 print。
结论?结论就是完全没有理由使用 print 这个函数了。