前面学习了使用单引号、双引号及定界符等声明字符串的方式,以及用不同方式声明的字符串之间的区别与应用。其实在 Web 应用中,网页上大部分显示的都是文字或图片,而文字居多。如果想要按用户的需求通过 PHP 动态地输出这些文字,就需要将网页上的文字定义为一个个字符串,然后通过 PHP 的字符串输出函数将其输出。
PHP 中提供了多种多样的字符串输出函数供我们使用,下面就来介绍一下,在 PHP 中常用的字符串输出函数如下表所示。
函数名 | 功能描述 |
---|---|
echo() | 输出字符串 |
print() | 输出一个或多个字符串 |
die() | 输出一条消息,并退出当前脚本 |
printf() | 输出格式化字符串 |
sprintf() | 把格式化的字符串写入一个变量中 |
echo() 用于输出一个或多个字符串,是在 PHP 中使用最多的函数之一,因为使用它的效率要比其他字符串输出函数高。
严格来讲 echo 实际上并不是一个函数(它是个语言结构),因此不一定必须使用小括号来指明参数,使用单引号、双引号也可以。需要注意的是,如果想向 echo 中传递多个参数的话,那么就不能使用小括号,否则会发生解析错误。
echo 的语法格式如下所示:
其中,$arg1 为要输出的参数。
另外,echo 还有一个快捷用法,那就是可以在 PHP 开始标记前直接用一个等号(在 PHP 5.4.0 之前,必须在 php.ini 里面启用 short_open_tag 才有效)然后在后面填充要输出的变量,如下所示:
【示例】使用 echo 输出指定的字符串。
<?php
$str = '城东书院';
$url = 'http://www.cdsy.xyz/computer/programme/PHP/';
echo $str;
echo '<br>';
echo($url);
echo '<br>';
echo $str.'----'.$url.'<br>';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
欢迎访问 <?= $str ?> !
</body>
</html>
运行结果如下:
print() 函数的功能和 echo() 一样,最主要的区别就是 echo 可以接受多个参数并且没有返回值,而 print() 只能接受一个参数并且有返回值,print() 函数的语法格式如下:
其中,$arg 为要输出的字符串。另外,print() 函数总是返回 1。
die() 函数是 exit() 函数的别名,该函数可以输出一个消息并退出当前脚本,其语法格式如下:
其中,$status 为要输出的内容,如果 $status 是一个字符串,则该函数会在退出前输出它。如果 $status 是一个整数,这个值会被用做退出状态码,并且不对被打印输出。退出状态码的值在 0 至 254 之间。另外,退出状态码 255 由 PHP 保留,不能使用。状态码 0 用于成功地终止程序。
【示例】使用 die() 推出脚本并输出一条信息。
<?php
$url = 'http://www.cdsy.xyz/computer/programme/PHP/';
fopen($url, 'r') or die('链接打开失败!');
?>
函数 printf() 用于输出格式化后的字符串,和C语言中的同名函数用法一样。函数的语法格式如下:
其中,$format 为必选参数,用来设置字符串以及如何格式化其中的变量;剩余的若干个参数(例如 $args)为可选参数,用来设置插入到 $format 中对应“%”符号处的参数。
printf() 函数的第一个参数使用的转换格式是将字符串中不确定(动态)的部分使用占位符来替代,占位符是以百分比符号“%”到转换字符来表示的,如下表所示。
格式 | 功能描述 |
---|---|
%% | 返回百分比符号 |
%b | 二进制数 |
%c | ASCII 值对应的字符 |
%d | 包含正负号的十进制数(负数、0、正数) |
%e | 使用小写的科学计数法(例如 1.5e+3) |
%E | 使用大写的科学计数法(例如 1.2E+2) |
%u | 无符号的十进制数 |
%f | 浮点数(本地设置) |
%F | 浮点数(非本地设置) |
%g | 较短的 %e 和 %f |
%G | 较短的 %E 和 %f |
%o | 八进制数 |
%s | 字符串 |
%x | 十六进制数(小写字母) |
%X | 十六进制数(大写字母) |
占位符的 % 于后面的字母之间也可以插入一些附加的内容(例如 %.2f):
注意:如果使用多个上述的格式值,它们必须按照上面的顺序进行使用,不能打乱。
【示例】使用 printf() 函数输出指定的字符串。
<?php
$str = '城东书院';
$url = 'http://www.cdsy.xyz/computer/programme/PHP/';
$num = 789;
printf('欢迎访问%s,网站链接为:%s<br>', $str, $url);
printf('%0.3f<br>', $num);
?>
运行结果如下:
sprintf() 函数的用法和 printf() 相似,但它并不输出字符串,而是把格式化后的字符串以返回值的形式返回,我们可以使用一个变量来接收 sprintf() 函数的返回值,这样就可以在需要时侯使用这个格式化后的字符串了。示例代码如下所示:
<?php
$num = 3.1415926;
$str = sprintf('%.2f', $num);
echo $str;
?>
运行结果如下: