大家在面试中,常常会被问到的问题:
请简要阐明PHP的打印形式都有哪些?
或者间接点问:
请阐明echo、print、print_r的区别
看着很简略,个别会呈现在初中级的口试题中。然而要真正说明确这些语言构造或者函数也不是那么简略的事件。明天咱们就来好好看看这些打印输出相干的内容。
echo
最根底的输入语句,不是函数是语言构造,不须要括号。能够应用参数列表,用逗号分隔。但如果加了括号就不能用逗号分隔着输入了。没有返回值。
<code class="php">echo 'fullstackpm'; // 失常输入:fullstackpm echo 'fullstackpm', ' is ', 'Good!'; // 失常输入:fullstackpm is Good! echo ('fullstackpm'); // 失常输入:fullstackpm echo ('fullstackpm', ' is ', 'Good!'); // 报错了
根本和echo一样,然而不反对参数列表,有返回值。返回值永远是1。
因为有返回值,所以相对来说效率不如echo
<code class="php">print 'fullstackpm'; // 失常输入:fullstackpm print 'fullstackpm', ' is ', 'Good!'; // 谬误 $r = print ('fullstackpm'); // 失常输入:fullstackpm print $r; // 输入1
printf和sprintf
两个很高大上的函数,能够格式化输入字符串。用%表明占位符,前面的参数对应进行占位符的替换。printf和sprintf的区别就是前者间接进行了输入,而后者是将字符串进行了函数返回。请看实例。
<code class="php">$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,能够不间接输入而是进行函数返回。
<code class="php">$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参数,作用也相似。
<code class="php">$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', ) */
===============
关注公众号:【硬核项目经理】获取最新文章
增加微信/QQ好友:【xiaoyuezigonggong/149844827】收费得PHP、项目管理学习材料
知乎、公众号、抖音、头条搜寻【硬核项目经理】
B站ID:482780532