输出

echo — 输出一个或多个字符串
语法

void echo( string $arg1[, string $...] )

描述
  • 输出所有参数。echo 不是一个函数(它是一个语言结构),因此你不一定要使用小括号来指明参数,单引号,双引号都可以。
  • echo (不像其他语言构造)不表现得像一个函数,所以不能总是使用一个函数的上下文。 另外,如果你想给echo 传递多个参数, 那么就不能使用小括号。
参数
参数 描述
arg1 要输出的参数
返回值
  • 没有返回值。
举例
// 示例
echo('张三');
// 结果
张三

语法

int print( string $arg)

描述
  • 输出 arg。print 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起它的参数列表
参数
参数 描述
arg 输入数据
返回值
  • 总是返回 1
举例
// 示例
print '张三';
// 结果
张三

printf — 输出格式化字符串
语法

int printf( string $format[, mixed $args[, mixed $...]] )

描述
  • 依据 format 格式参数产生输出
参数
参数 描述
format format 描述信息,请参见 sprintf()。
arg 输入数据
返回值
  • 返回输出字符串的长度
举例
// 示例
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2

// 注释:格式值 "%%" 返回百分号
printf("%%b = %b <br>",$num1); // 二进制数
printf("%%c = %c <br>",$char); // ASCII 字符
printf("%%d = %d <br>",$num1); // 带符号的十进制数
printf("%%d = %d <br>",$num2); // 带符号的十进制数
printf("%%e = %e <br>",$num1); // 科学计数法(小写)
printf("%%E = %E <br>",$num1); // 科学计数法(大写)
printf("%%u = %u <br>",$num1); // 不带符号的十进制数(正)
printf("%%u = %u <br>",$num2); // 不带符号的十进制数(负)
printf("%%f = %f <br>",$num1); // 浮点数(视本地设置)
printf("%%F = %F <br>",$num1); // 浮点数(不视本地设置)
printf("%%g = %g <br>",$num1); // 短于 %e 和 %f
printf("%%G = %G <br>",$num1); // 短于 %E 和 %f
printf("%%o = %o <br>",$num1); // 八进制数
printf("%%s = %s <br>",$num1); // 字符串
printf("%%x = %x <br>",$num1); // 十六进制数(小写)
printf("%%X = %X <br>",$num1); // 十六进制数(大写)
printf("%%+d = %+d <br>",$num1); // 符号说明符(正)
printf("%%+d = %+d <br>",$num2); // 符号说明符(负)
// 结果
%b = 111010110111100110100010101
%c = 2
%d = 123456789
%d = -123456789
%e = 1.234568e+8
%E = 1.234568E+8
%u = 123456789
%u = 18446744073586094827
%f = 123456789.000000
%F = 123456789.000000
%g = 1.23457e+8
%G = 1.23457E+8
%o = 726746425
%s = 123456789
%x = 75bcd15
%X = 75BCD15
%+d = +123456789
%+d = -123456789

sprintf — 返回格式化的字符串
语法

string sprintf( string $format[, mixed $args[, mixed $...]] )

描述
  • 返回格式化后的字符串
参数
参数 描述
format 格式
arg1 规定插到 format 字符串中第一个 % 符号处的参数
arg2 规定插到 format 字符串中第二个 % 符号处的参数
返回值
  • 返回已格式化的字符串
sprintf和printf的区别
  • printf()函数可以直接将格式化之后的字符串输出,而sprintf()函数需要使用echo方法将格式化后的字符串输出。
  • printf()函数的返回值为int类型,表示打印出来字符串的字符数量,而sprintf()函数的返回值为一个字符串。
format
  • 必需。规定字符串以及如何格式化其中的变量。 可能的格式值: %% - 返回一个百分号 % %b - 二进制数 %c - ASCII 值对应的字符 %d - 包含正负号的十进制数(负数、0、正数) %e - 使用小写的科学计数法(例如 1.2e+2) %E - 使用大写的科学计数法(例如 1.2E+2) %u - 不包含正负号的十进制数(大于等于 0) %f - 浮点数(本地设置) %F - 浮点数(非本地设置) %g - 较短的 %e 和 %f %G - 较短的 %E 和 %f %o - 八进制数 %s - 字符串 %x - 十六进制数(小写字母) %X - 十六进制数(大写字母) 附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

    • (在数字前面加上 + 或 - 来定义数字的正负性。默认情况下,只有负数才做标记,正数不做标记) ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%'x20s(使用 "x" 作为填充))
    • (左调整变量值) [0-9] (规定变量值的最小宽度) .[0-9] (规定小数位数或最大字符串长度) 注释:如果使用多个上述的格式值,它们必须按照以上顺序使用。
举例
// 示例1-所有可能的格式值
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2

// 注释:格式值 "%%" 返回百分号
echo sprintf("%%b = %b",$num1)."<br>"; // 二进制数
echo sprintf("%%c = %c",$char)."<br>"; // ASCII 字符
echo sprintf("%%d = %d",$num1)."<br>"; // 带符号的十进制数
echo sprintf("%%d = %d",$num2)."<br>"; // 带符号的十进制数
echo sprintf("%%e = %e",$num1)."<br>"; // 科学计数法(小写)
echo sprintf("%%E = %E",$num1)."<br>"; // 科学计数法(大写)
echo sprintf("%%u = %u",$num1)."<br>"; // 不带符号的十进制数(正)
echo sprintf("%%u = %u",$num2)."<br>"; // 不带符号的十进制数(负)
echo sprintf("%%f = %f",$num1)."<br>"; // 浮点数(视本地设置)
echo sprintf("%%F = %F",$num1)."<br>"; // 浮点数(不视本地设置)
echo sprintf("%%g = %g",$num1)."<br>"; // 短于 %e 和 %f
echo sprintf("%%G = %G",$num1)."<br>"; // 短于 %E 和 %f
echo sprintf("%%o = %o",$num1)."<br>"; // 八进制数
echo sprintf("%%s = %s",$num1)."<br>"; // 字符串
echo sprintf("%%x = %x",$num1)."<br>"; // 十六进制数(小写)
echo sprintf("%%X = %X",$num1)."<br>"; // 十六进制数(大写)
echo sprintf("%%+d = %+d",$num1)."<br>"; // 符号说明符(正)
echo sprintf("%%+d = %+d",$num2)."<br>"; // 符号说明符(负)
// 结果
%b = 111010110111100110100010101
%c = 2
%d = 123456789
%d = -123456789
%e = 1.234568e+8
%E = 1.234568E+8
%u = 123456789
%u = 18446744073586094827
%f = 123456789.000000
%F = 123456789.000000
%g = 1.23457e+8
%G = 1.23457E+8
%o = 726746425
%s = 123456789
%x = 75bcd15
%X = 75BCD15
%+d = +123456789
%+d = -123456789
// 示例2-字符串
$str1 = "Hello";
$str2 = "Hello world!";

echo sprintf("[%s]",$str1)."<br>";
echo sprintf("[%8s]",$str1)."<br>";
echo sprintf("[%-8s]",$str1)."<br>";
echo sprintf("[%08s]",$str1)."<br>";
echo sprintf("[%'*8s]",$str1)."<br>";
echo sprintf("[%8.8s]",$str2)."<br>";
// 结果
[Hello]
[ Hello]
[Hello ]
[000Hello]
[***Hello]
[Hello wo]

vprintf — 输出格式化字符串
语法

int vprintf( string $format, array $args)

描述
  • 根据 format (sprintf() 函数文档中有相关描述)参数指定的格式,在一个格式化字符串中显示多个值
  • 作用与 printf() 函数类似,但是接收一个数组参数,而不是一系列可变数量的参数
参数
参数 描述
format 关于 format 的描述,参见 sprintf()
args 格式化参数,数组格式
返回值
  • 返回输出字符串的长度。
举例
// 示例1-一般使用
$num1 = 123;
$num2 = 456;
vprintf("%f%f",array($num1,$num2));
// 结果
123.000000456.000000
// 示例2-字符串
$str1 = "Hello";
$str2 = "Hello world!";

vprintf("[%s]<br>",array($str1));
vprintf("[%8s]<br>",array($str1));
vprintf("[%-8s]<br>",array($str1));
vprintf("[%08s]<br>",array($str1));
vprintf("[%'*8s]<br>",array($str1));
vprintf("[%8.8s]<br>",array($str2));
// 结果
[Hello]
[ Hello]
[Hello ]
[000Hello]
[***Hello]
[Hello wo]

vsprintf — 返回格式化字符串
语法

string vsprintf( string $format, array $args)

描述
  • 作用与 sprintf() 函数类似,但是接收一个数组参数,而不是一系列可变数量的参数
参数
参数 描述
format 关于 format 的描述,参见 sprintf()。
args 格式化参数,数组格式
返回值
  • 根据 format (sprintf() 函数文档中有相关描述)参数指定的格式,在一个字符串中返回一系列值
举例
// 示例
$number = 9;
$str = "Beijing";
$txt = vsprintf("There are %u million bicycles in %s.",array($number,$str));
echo $txt;
// 结果
There are 9 million bicycles in Beijing.

results matching ""

    No results matching ""