php 函数 打印,php打印函数入门教程

关于php打印函数我们需要了解php打印函数种类,简单实用以及功能区别,总结各个打印函数的实用场景以及相关最佳实践。

函数介绍

1. echoecho用于输出一个或者多个字符串, 不换行

如果输出对象非字符串,会尝试将对象转成字符串, 转化失败则抛出异常

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'

2. printprint 属于语法结构,而非函数 (同echo)

print 一次只能接受一个字符串(区分与echo)

其他效果同echo

使用<?phpprint 'hello world';

3. print_r()用于 打印关于变量的易于理解的信息。(不包括变量类型信息)

对于对象, 打印所有属性(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 = ['1' => 1, "3", 5, $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

)

*/

4. var_dump一个或多个表达式的结构信息 (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 = ['1' => 1, "3", 5, $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, $n, $b, $f);/*string(3) "111"int(1)bool(false)float(1.1222)

*/

5. 其他printf(): 用于格式化输出的场景

sprintf() 用于格式化字符串场景, 较printf()区别在于,前者直接输出到标准输出, 后者字符串以变量形式返回

使用<?php $n = 11;$s = "22";$f = "22";printf("%d%s%f", $n, $s, $f); // 112222.000000$s2 = sprintf("%d%s%f", $n, $s, $f);

echo $s2; // 112222.000000

最佳实践 (服务调试)不使用print, 可用echo 替代

由于echo只能输出简单的字符串,需要了解变量详细信息不用echo, 建议使用print_r(), var_dump() (个人更偏爱var_dump)

调试信息输出到浏览器, 尝试添加 echo '

';  产生更友好的信息显示41

42

43

44

45

46

4. var_dump一个或多个表达式的结构信息 (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 = ['1' => 1, "3", 5, $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, $n, $b, $f);/*string(3) "111"int(1)bool(false)float(1.1222)

*/

相关推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值