1. echo
echo 是一个语言结构,可以输出标量类型的数据,如int、float、string。没有返回值。
2. print( )
print 是一个函数,可以输出标量类型的数据,如int、float、string。有返回值,总是返回1。
3. print_r( )
print_r( ) 是一个函数,可以打印关于变量的易于理解的信息,不仅可以打印标量类型的变量,还可以打印复合类型的变量,如array、object。有返回值,类型为bool。
4. var_dump( )
var_dump( ) 是一个函数可以打印关于变量的较为详细的信息,如变量值的类型。不仅可以打印标量类型的变量,还可以打印复合类型的变量,如array、object。返回值为NULL。
5. printf( )
printf( ) 输出格式化的字符串,有返回值,返回值是输出的字符串的长度。
如:printf('%s', 'abc'); // abc 定义格式为按照字符串形式直接输出。
printf("%.0f",905.453); // 905 定义格式为按照浮点数形式输出,保留小数点后0位小数。(会四舍五入)
printf("%.1f",905.453); // 905.5 定义格式为保留小数点后1位小数。
printf("%.2f",905.453); // 905.45
printf("%f",905.453); // 905.453000 输出浮点数时,默认保留小数点后6位小数。
printf("%03d",4); // 004 定义格式为,按照十进制形式输出整数,整数位数为3,不足的部分用0填充。
6. sprintf()
sprintf() 返回格式化的字符串。也就是说,这个函数仅仅是把格式化的字符串返回,但不会输出。
string
sprintf
(
string $forma
t
[,
mixed $args
[,
mixed $...
]] )
参数$format和printf( )中的$format用法一致。下面进行详细解说:
每一个格式化规范,都会包含一个百分号%,且以百分号开头,以类型说明符结尾。中间可以有其他的修饰说明符。
参数$format中可以有多个格式化规范,从而对多个字符串依次进行格式化。
注意:两个百分号,表示百分号本身,相当于转义了,也就是说两个百分号就不再是格式化规范的起始符,仅仅表示一个字面上的百分符号。
每个格式化规范的组成元素,包含以下几种:(按顺序列出)
起始符:格式化规范的起始符,是一个百分符号% 必选
符号说明符:强制修饰格式化后的数值的正(+)或者负(-),默认负数格式化后前面用-修饰,正数不用修饰。 可选
填充说明符:格式化为指定的长度时,如果长度不足,用填充符前置填充到指定的长度,常用的填充符是0,默认的填充符是空格。 可选
对齐说明符:修饰格式化后的结果的对齐方式,默认是右对齐,字符a代表左对齐。 可选
长度说明符:指定转换格式后的结果的最小字符数(最小长度)。 可选
精度说明符:指定保留小数点后小数的位数(超出的部分会四舍五入),形式为小数点后紧跟一个数字。 可选
类型说明符:格式化规范的结尾符,指定参数数据应当做什么数据类型对待,也就是说按照何种类型格式转化。 必选
常用的类型说明符,有以下几种:
b: 代表二进制整数,binary的首字母
d: 代表十进制整数,decimal的首字母
e: 代表科学计数法
u: 代表无符号的十进制整数,unsigned的首字母
f: 代表浮点数,float的首字母
o: 代表八进制整数,octal的首字母
s: 代表字符串,string的首字母
x: 代表十六进制整数,小写字母,hexadecimal
X:代表十六进制整数,大写字母,hexadecimal
举例说明:
list($year,$month,$day) = explode("-", "2015-9-28");
$result = sprintf("%04d-%02d-%02d", $year, $month, $day);
var_dump($result); // string(10) "2015-09-28"
printf("%04d-%02d-%02d", $year, $month, $day); // 2015-09-28
7. vsprintf( )
vsprintf( ) 返回格式化的字符串。和sprintf( )的区别是,vsprintf( )的第二个参数是数组。
string vsprintf
(
string $format
,
array $args
)
参数
$format的用法和上面一致,只不过vsprintf( )的第二个参数是数组。vsprintf( )会对数组中的每个元素,依次格式化转换。
$result = vsprintf("%04d-%02d-%02d", explode("-", "2015-9-28"));
var_dump($result);
// string(10) "2015-09-28"