概要
- 了解php打印函数种类,简单实用以及功能区别
- 总结各个打印函数的实用场景以及相关最佳实践
函数介绍
- echo用于输出一个或者多个字符串, 不换行
- 如果输出对象非字符串,会尝试将对象转成字符串, 转化失败则抛出异常
- echo属于语法结构,而非函数
- 使用
<?php
class Cls1 {
}
class Cls2 {
public function __toString() {
return 'Cls2';
}
}
echo "111";
echo 111;
echo true ;
echo false;
echo (new Cls1);
echo (new Cls2);
echo 22, "11", new Cls2;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- print 属于语法结构,而非函数 (同echo)
- print 一次只能接受一个字符串(区分与echo)
- 其他效果同echo
- 使用
<?php
print 'hello world';
- 用于 打印关于变量的易于理解的信息。(不包括变量类型信息)
- 对于对象, 打印所有属性(public, protected, private)
- 一次仅允许打印一个变量(区别于echo)
- 使用
<?php
class 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);
print_r($n);
print_r($b);
print_r($f);
print_r($arr);
print_r($o);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 一个或多个表达式的结构信息 (print_r只打印一个表达式)
- 输出包括 类型 与值(print_r() 不显示类型)
- 使用
<?php
class 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);
var_dump($n);
var_dump($b);
var_dump($f);
var_dump($arr);
var_dump($o);
var_dump($s, $n, $b, $f);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
5. 其他
<?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 '<pre>';
产生更友好的信息显示