php print r printf,PHP中的输出:echo、print、printf、sprintf、print_r和var_dump

人人在面试中,经常会被问到的问题:

请简要说明PHP的打印方式都有哪些?

或者直接点问:

请说明echo、print、print_r的区别

看着很简朴,一样平常会出现在初中级的笔试题中。然则要真正说明了这些语言结构或者函数也不是那么简朴的事情。今天我们就来好好看看这些打印输出相关的内容。

echo

最基础的输出语句,不是函数是语言结构,不需要括号。可以使用参数列表,用逗号分开。但若是加了括号就不能用逗号分开着输出了。没有返回值。

echo 'fullstackpm'; // 正常输出:fullstackpmecho 'fullstackpm', ' is ', 'Good!'; // 正常输出:fullstackpm is Good!echo ('fullstackpm'); // 正常输出:fullstackpmecho ('fullstackpm', ' is ', 'Good!'); // 报错了

print

基本和echo一样,然则不支持参数列表,有返回值。返回值永远是1。

由于有返回值,以是相对来说效率不如echo

print 'fullstackpm'; // 正常输出:fullstackpmprint 'fullstackpm', ' is ', 'Good!'; // 错误$r = print ('fullstackpm'); // 正常输出:fullstackpmprint $r; // 输出1

printf和sprintf

两个很高峻上的函数,可以格式化输出字符串。用%标明占位符,后面的参数对应举行占位符的替换。printf和sprintf的区别就是前者直接举行了输出,而后者是将字符串举行了函数返回。请看实例。

$str = 'My name is %s, I\'m %d years old.';printf($str, 'fullstackpm', 1002); // 直接输出:My name is fullstackpm, I'm 1002 years old.$s = sprintf($str, 'WoW', 12); // 这里不会输出print $s; // 输出:My name is WoW, I'm 12 years old.

你最少要记着的,%s代表字符串,%d代表数字,%f是浮点数,%%是输出%自己,其他另有许多类型可以查看相关文档。另外另有类似的几个:

vprintf,他的第二个参数是一个数组,不是可变长度的参数。

sscanf,对于一些特殊字符处理方式差别。

fscanf,从文档中读取并举行格式化。

print_r

异常常用的一个函数,可以格式化的输出数组或工具。注重第二个参数设置为true,可以不直接输出而是举行函数返回。

$str = [ "a", 1 => "b", "3" => "c", "show"=>'d'];print_r($str)// 输出/** Array ( [0] => a [1] => b [3] => c [show] => d )*/$s = print_r($str, true); // 此处不会输出echo $s;// 输出// 注重,输出流不在ob_start()中,测试本段请不要有其他任何输出/** Array ( [0] => a [1] => b [3] => c [show] => d )*/

var_dump和var_exports

var_dump也是异常常用的一个函数,用来显示结构信息,包罗类型与值,数组工具都市睁开,用缩进示意条理。var_exports与之差别的地方在于var_exports返回的内容是正常的PHP代码,可以直接使用,并且有和print_r类似的第二个return参数,作用也类似。

$str = [ "a", 1 => "b", "3" => "c", "show"=>'d'];var_dump($str);// 输出/** array(4) { [0] => string(1) "a" [1] => string(1) "b" [3] => string(1) "c" 'show' => string(1) "d" }*/var_export($str);// 输出/** array ( 0 => 'a', 1 => 'b', 3 => 'c', 'show' => 'd', )*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值