一、echo
- 只能输出标量数据类型,对于任何数据都可以转为字符串输出
- echo是PHP的一种特殊的'指令',不一定要像函数的那样()去使用,可以直接紧跟一个空格输出信息,可以是多个参数
<?php $v1=10; $v2='10'; $v3=true; $v4=false; $v5=[10,true,null,'字符串']; echo $v1,'<br>',$v2,'<br>',$v3,'<br>',$v4,'<br>',$v5; ?>
二、print
- 只能输出标量数据类型,对于任何数据都可以转为字符串输出
- 与echo1的区别是只能输出一个参数
<?php $v1=10; $v2='10'; $v3=true; $v4=false; $v5=[10,true,null,'字符串']; print($v1); echo '<br>'; print($v2); echo '<br>'; print($v3); echo '<br>'; print($v4); echo '<br>'; print($v5); ?>
- 和echo的区别在于,echo是一种语法结构,没有返回值,print是一种函数,有返回值
PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。
因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1。$r = print "Hello World";
这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。
echo 没有返回值;print 有返回值,print 的返回值总是1。
三、print_r
- 可以输出标量数据类型,对于任何数据都可以转为字符串输出
- 也可以输出数组,但是不能输出布尔值
<?php $v1=10; $v2='10'; $v3=true; $v4=false; $v5=[10,true,null,'字符串']; print_r($v1); echo '<br>'; print_r($v2); echo '<br>'; print_r($v3); echo '<br>'; print_r($v4); echo '<br>'; print_r($v5); ?>
四、var_dump()
- 是一个函数,必须跟上()调用
- 主要是用于程序员进行代码的调试,可以输出十分详细的信息
- 注意这种方法不适合输出信息给用户查看
<?php $v1=10; $v2='10'; $v3=true; $v4=false; $v5=[10,true,null,'字符串']; var_dump($v1); echo '<br>'; var_dump($v2); echo '<br>'; var_dump($v3); echo '<br>'; var_dump($v4); echo '<br>'; var_dump($v5); ?>
五、sprintf()
- 格式:sprintf(格式化字符串,变量1,变量2,.....)用于格式化输出
- 格式化输出占位符%b(二进制)、%d(十进制)、%o(八进制)、%x(十六进制)
- %f(小数),默认保留六位小数点,%.2f----保留两位小数点
<?php $v1=255; echo sprintf('二进制为:%b<br/>十进制为:%d<br/>八进制为:%o<br/>十六进制为:%x<br/>',$v1,$v1,$v1,$v1); $v2=5; echo sprintf('小数:%f',$v2),'<br>'; echo sprintf('小数:%.2f',$v2),'<br>'; echo sprintf('小数:%.10f',$v2); ?>