1 echo();2 print();3 print_r();4 printf();5 sprintf();6 die();7 var_dump();8 var_export();
echo
返回值是void,可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构(language construct)也就是关键字,而并不是真正的函数,因此不能作为表达式的一部分使用。使用的时候不用加括号,加上也可以。只支持基本类型,布尔型除外,echo true的时候显示1,echo false的时候啥都没有。echo不可以输出数组类型
print()
只可以同时输出一个字符串,一个变量,不支持逗号分隔多个显示变量的语法,需要圆括号,print能输出数组类型的数据,返回值是int,当其执行失败时返flase。print 的用法和C语言很像,所以会对输出内容里的%做特殊解释。
print_r()
不仅可以打印变量的的值,还能显示变量类型,而且也可以显示数组和对象这样复杂的变量类型。print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。print_r()可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php //打印数组 $a = array (1, 2, array ("a", "b", "c")); print_r ($a); //返回 Array ( [0] => 1 [1] => 2 [2] => Array ( [0] => a [1] => b [2] => c ) ) //打印对象 class P { var $name = 'nat'; // ... } $p = new P; print_r($p); /*返回 Output: Object { [name] => nat }*/ ?> |
但print_r()输出布尔值和NULL的结果没有意义,因为都是打印”\n”。因此用var_dump()函数更适合调试。
printf()
printf()源于C语言中的printf()。该函数输出格式化的字符串。
语法: printf(format,arg1,arg2,arg++)
format 规定字符串以及如何格式化其中的变量(按什么格式输出);
arg1, arg2, ++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的。在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 “\$” 组成。
0 1 2 |
<?php printf ("$%01.2f" , 43.2); //$43.20 ?> |
$ 表示填充的字符
0 表示位数不够在不影响原值的情况下补
1 表示输出的总宽度
2 表示小数位数 ,有四舍五入
%f 是表示显示为一个浮点数
========================
格式化命令及说明:
%% 印出百分比符号,不转换。
%b 整数转成二进位。
%c 整数转成对应的 ASCII 字符。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $num=100.001; printf("%d",$num); //100 printf("%s",$num); //100.001 printf("%s--%d--%b--%x--%o--%f",$num,$num,$num,$num,$num,$num) //100.001--100--1100100--64--144--1001.00100 printf("%.2f",$num); //100.00 (小数点保留2位) printf("%.1f",$num); //100.0 (小数点保留1位) printf("%`#10s",$num); //###100.001 printf("%`@10s",$num); //@@@100.001 printf("%`_10s",$num); //___100.001 printf("%`#-10s",$num); //100.001### printf("%`@-10s",$num); //100.001@@@ printf("%`_-10s",$num); //100.001___ printf("%`#20s",$num); //#############100.001 ?> |
sprintf()
sprintf()把输出内容存放在变量中,所以不能直接输出,必须先赋给一个变量,然后再输出变量。
0 1 2 3 4 |
<?php $num=100.001; $a=sprintf("%d",$num); echo $a; //100 ?> |
die()
一般用于数据库连接的判断,一旦执行die()后面的内容将不执行。die()输出一条消息,并退出当前脚本,是 exit() 函数的别名。
有两个功能:先输出内容,然后退出程序。
0 |
mysql_connect("locahost","root","root") or die("链接服务器失败!"); |
var_dump()
可以输出任何内容,输出变量的容,类型或字符串的内容,类型,长度。常用来调试。
0 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 |
<?php $a = array (1, 2, array ("a", "b", "c")); var_dump ($a); /* 输出: array(3) { [0]=> int(1) [1]=> int(2) [2]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } } */ $b = 3.1; $c = TRUE; $d = 100; var_dump($b,$c,$d); /* 输出: float(3.1) bool(true) int(100) */ ?> |
var_export()
返回关于传递给该函数的变量的结构信息,它和var_dump()类似,不同的是其返回的表 示是合法的 PHP 代码。
您可以通过将函数的第二个参数设置为TRUE ,从而返回变量的值。
var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。而这个变量就会取得和被var_export一样的类型的值。但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php $a = array (1, 2, array ("a", "b", "c")); var_export ($a); //这里改成 $s = var_export ($a); 也是可以直接输出的 /* 输出: array ( 0 => 1, 1 => 2, 2 => array ( 0 => 'a', 1 => 'b', 2 => 'c', ), ) */ $b = 3.1; $v = var_export($b, TRUE); //放在一个变量中才可以输出 echo $v; /* 输出: 3.1 */ ?> |
1