关于php打印函数我们需要了解php打印函数种类,简单实用以及功能区别,总结各个打印函数的实用场景以及相关最佳实践。
echo用于输出一个或者多个字符串, 不换行
如果输出对象非字符串,会尝试将对象转成字符串, 转化失败则抛出异常
echo属于语法结构,而非函数
使用
<?phpclass Cls1 {}class Cls2 { public function __toString() { return 'Cls2'; } }echo "111"; // '111'//数字类型转成stringecho 111; // '111'//输出bool类型true被转成'1' , false转成''echo true ; // '1'echo false; // '' //输出对象,尝试调用对象__toString方法将对象序列化echo (new Cls1); // error: class Cls1 could not be converted to stringecho (new Cls2); // 'Cls2' //输出输出多个变量(非字符串类型会被尝试转成字符串)echo 22, "11", new Cls2; // '2211Cls2'
print 属于语法结构,而非函数 (同echo)
print 一次只能接受一个字符串(区分与echo)
其他效果同echo
使用
<?phpprint 'hello world';
用于 打印关于变量的易于理解的信息。(不包括变量类型信息)
对于对象, 打印所有属性(public, protected, private)
一次仅允许打印一个变量(区别于echo)
使用
<?phpclass Cls1 { public $var1 = 111; protected $var2 = 222; private $var3 = 333; public function func() {} }$s = "111";$n = 1;$b = false;$f = 1.1222;$o = new Cls1();$arr</span> = [<span class="hljs-string">'1'</span> => <span class="hljs-number">1</span>, <span class="hljs-string">"3"</span>, <span class="hljs-number">5</span>, <span class="hljs-variable">$o];print_r($s); // '111'print_r($n); // 1print_r($b); // ''print_r($f); // 1.1222print_r($arr);/*Array( [1] => 1 [2] => 3 [3] => 5 [4] => Cls1 Object ( [var1] => 111 [var2:protected] => 222 [var3:Cls1:private] => 333 ) ) */print_r($o);/*Cls1 Object( [var1] => 111 [var2:protected] => 222 [var3:Cls1:private] => 333 ) */
一个或多个表达式的结构信息 (print_r只打印一个表达式)
输出包括 类型 与值(print_r() 不显示类型)
使用
<?phpclass Cls1 { public $var1 = 111; protected $var2 = 222; private $var3 = 333; public function func() {} }$s = "111";$n = 1;$b = false;$f = 1.1222;$o = new Cls1();$arr</span> = [<span class="hljs-string">'1'</span> => <span class="hljs-number">1</span>, <span class="hljs-string">"3"</span>, <span class="hljs-number">5</span>, <span class="hljs-variable">$o];var_dump($s); // string(3) "111"var_dump($n); // int(1)var_dump($b); // bool(false)var_dump($f); // float(1.1222)var_dump($arr);/*array(4) { [1]=> int(1) [2]=> string(1) "3" [3]=> int(5) [4]=> object(Cls1)#1 (3) { ["var1"]=> int(111) ["var2":protected]=> int(222) ["var3":"Cls1":private]=> int(333) } } */var_dump($o);/* object(Cls1)#1 (3) { ["var1"]=> int(111) ["var2":protected]=> int(222) ["var3":"Cls1":private]=> int(333) } */var_dump($s</span>, <span class="hljs-variable">$n, $b</span>, <span class="hljs-variable">$f);/*string(3) "111"int(1)bool(false)float(1.1222) */
printf(): 用于格式化输出的场景
sprintf() 用于格式化字符串场景, 较printf()区别在于,前者直接输出到标准输出, 后者字符串以变量形式返回
使用
<?php$n = 11;$s = "22";$f = "22";printf("%d%s%f", $n</span>, <span class="hljs-variable">$s, $f); // 112222.000000$s2</span> = <span class="hljs-keyword">sprintf</span>(<span class="hljs-string">"<span class="hljs-variable">%d</span><span class="hljs-variable">%s</span><span class="hljs-variable">%f</span>"</span>, <span class="hljs-variable">$n, $s</span>, <span class="hljs-variable">$f); echo $s2; // 112222.000000
不使用print, 可用echo 替代
由于echo只能输出简单的字符串,需要了解变量详细信息不用echo, 建议使用print_r(), var_dump() (个人更偏爱var_dump)
调试信息输出到浏览器, 尝试添加 echo '
'; 产生更友好的信息显示
41
42
43
44
45
46
一个或多个表达式的结构信息 (print_r只打印一个表达式)
输出包括 类型 与值(print_r() 不显示类型)
使用
<?phpclass Cls1 { public $var1 = 111; protected $var2 = 222; private $var3 = 333; public function func() {} }$s = "111";$n = 1;$b = false;$f = 1.1222;$o = new Cls1();$arr</span> = [<span class="hljs-string">'1'</span> => <span class="hljs-number">1</span>, <span class="hljs-string">"3"</span>, <span class="hljs-number">5</span>, <span class="hljs-variable">$o];var_dump($s); // string(3) "111"var_dump($n); // int(1)var_dump($b); // bool(false)var_dump($f); // float(1.1222)var_dump($arr);/*array(4) { [1]=> int(1) [2]=> string(1) "3" [3]=> int(5) [4]=> object(Cls1)#1 (3) { ["var1"]=> int(111) ["var2":protected]=> int(222) ["var3":"Cls1":private]=> int(333) } } */var_dump($o);/* object(Cls1)#1 (3) { ["var1"]=> int(111) ["var2":protected]=> int(222) ["var3":"Cls1":private]=> int(333) } */var_dump($s</span>, <span class="hljs-variable">$n, $b</span>, <span class="hljs-variable">$f);/*string(3) "111"int(1)bool(false)float(1.1222) */
相关推荐:
The above is the detailed content of Getting Started Tutorial on PHP Printing Function. For more information, please follow other related articles on the PHP Chinese website!