到目前为止,我们已经用echo语言结构将字符串输出到浏览器。PHP也支持print()语句,它实现的功能与echo相同,但具有返回值(true或false,表示成功或失败)。
这两种方法都会打印一个字符串。使用函数printf()和sprintf(),还可以实现一些更复杂的格式。它们的工作方式基本相同,只是printf()函数是将一个格式化的字符串输出到浏览器中,而sprintf()函数是返回一个格式化了的字符串。
string sprintf( string format [, mixed args...]) void printf( string format [, mixed args...])
传递给这两个函数的第一个参数都是字符串格式,它们使用格式代码而不是变量来描述输出字符串的基本形状。其他的参数是用来替换格式字符串的变量。
可以在格式化字符串中使用多个转换说明。如果有n个转换说明,在格式化字符串后面就应该带有n个参数。每个转换说明都将按给出的顺序被一个重新格式化过的参数代替。
每一个转换说明都遵循同样的格式,如下所示:
%['padding_character][-][width][.precision]type
对于4.0.6版本来说,可以使用带序号的参数方式,这就意味着参数的顺序并不一定要与转换说明中的顺序相同。例如:
printf("Total amount of order is %2\$.2f (width shipping %1\$.2f)", $total_shipping, $total)
只要直接在“%”符号后添加参数的位置,并且以$符号为结束——在这个例子中,“2\$”意味着“用列表中的第二个参数替换”。这个方法也可以在重复参数中使用。
这些函数还有两种可替换的版本,分别是vprintf()和vsprintf()。这些变体函数接收两个参数:格式字符串和参数数组,而不是可变数量的参数。