php 打印函数(echo , print, printf, print_f, var_dump)
概要
- 了解php打印函数种类,简单实用以及功能区别
- 总结各个打印函数的实用场景以及相关最佳实践
函数介绍
1. echo
- echo用于输出一个或者多个字符串, 不换行
- 如果输出对象非字符串,会尝试将对象转成字符串, 转化失败则抛出异常
- echo属于语法结构,而非函数
- 使用
<?php
class Cls1 {}class Cls2 {public function __toString() {return 'Cls2';}
}echo "111"; // '111'//数字类型转成string
echo 111; // '111'//输出bool类型true被转成'1' , false转成''
echo true ; // '1'
echo false; // ''//输出对象,尝试调用对象__toString方法将对象序列化
echo (new Cls1); // error: class Cls1 could not be converted to string
echo (new Cls2); // 'Cls2'//输出输出多个变量(非字符串类型会被尝试转成字符串)
echo 22, "11", new Cls2; // '2211Cls2'
- 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
2. print
- print 属于语法结构,而非函数 (同echo)
- print 一次只能接受一个字符串(区分与echo)
- 其他效果同echo
- 使用
<?php
print 'hello world';
- 1
- 2
3. print_r()
- 用于 打印关于变量的易于理解的信息。(不包括变量类型信息)
- 对于对象, 打印所有属性(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); // '111'
print_r($n); // 1
print_r($b); // ''
print_r($f); // 1.1222
print_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
)
*/
- 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
4. var_dump
- 一个或多个表达式的结构信息 (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); // 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)
*/
- 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. 其他
- 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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
最佳实践 (服务调试)
- 不使用print, 可用echo 替代
- 由于echo只能输出简单的字符串,需要了解变量详细信息不用echo, 建议使用print_r(), var_dump() (个人更偏爱var_dump)
- 调试信息输出到浏览器, 尝试添加
echo '<pre>';
产生更友好的信息显示
php 打印函数(echo , print, printf, print_f, var_dump)相关推荐
- R语言打印函数,print函数和cat函数实战
R语言打印函数,print函数和cat函数实战 目录 R语言print函数和cat函数实战 #基本语法 # print()函数和cat()函数对比
- [转]PHP echo, print, printf, sprintf函数的区别和使用
1. echo函数: 输出函数,是命令,不能返回值.echo后面可以跟很多个参数,之间用分号隔开,如: echo $myvar1; echo 1,2,$myvar,"<b>bol ...
- echo, print, printf 和 sprintf 区别(PHP)
- echo 是命令,不能返回值.echo后面可以跟很多个参数,之间用分号隔开,如: echo $myvar1; echo 1,2,$myvar,"<b>bold</b&g ...
- php print_r this,PHP 打印函数之 print print_r
print 说明 int print ( string $arg ) 输出 arg print 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起它的参数列表 参数 arg:输入数 ...
- php r echo_PHP中echo(),print(),print_r()的区别是什么?
四种方法可以输出字符串. echo print() printf() print_r() echo 可以一次输出多个值,多个值之间用逗号分隔.echo是语言结构(language construct) ...
- php print r用法,php中echo(),print(),print_r()用法
从我对echo(),print(),print_r()这个函数的理解是echo可输入字符串变量常量,print与echo差不多,但print_r可以打印数组而前两者是不可以的,下面我来详细介绍它们三个 ...
- PHP中echo(),print(),print_r()的区别是什么?
四种方法都可以输出字符串. echo print() printf() print_r() 1 echo 可以一次输出多个值,多个值之间用逗号分隔.echo是语言结构(language constru ...
- ZYNQ开发中SDK输出串口选择以及打印函数print、printf、xil_printf的差别
ZYNQ开发系列--SDK输出串口选择以及打印函数print.printf.xil_printf的差别 前言 两个串口到底是谁在打印? print 和 printf 和 xil_printf 前言 在 ...
- ZYNQ开发系列——SDK输出串口选择以及打印函数print、printf、xil_printf的差别
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--SDK输出串口选择以及打印函数print.printf.xil_printf的差别 前言 两个串口到底是谁在打印? ...
最新文章
- java 宽字节_宽字节注入
- 详解 WSUS 部署
- 【问链-EOS公开课】第十三课 EOS插件机制深入解析
- python读取mysql数据_Selenium(Python) ddt读取MySQL数据驱动
- java ftp读取文件内容_java读取ftp中TXT文件的案例
- 两台服务器怎么发文件,两台服务器怎么发文件
- Leetcode: 3Sum
- Word样式窗格、模板格式
- java 观察者模式类图_设计模式——观察者模式
- 模型压缩文献笔记_3:彩票假设及其家属。
- 从头认识一遍“货到人”拣选
- java 骰子_Java--摇骰子
- display 常用属性
- Python中常用的四个小技巧总结
- spark history server内存不足服务自动挂掉
- 超级计算机多层网络,超级计算机多层体系结构的摘要和描述(2)
- 设计策略--素材分析的一些思路
- C# 实现人脸识别一 (运用虹软人脸识别引擎)
- kali RDP远程桌面之xfce4
- 雷达原理-目标距离的测量