【web开发】PHP字符串之字符串输出及格式化输出

举报
迷彩 发表于 2023/07/29 00:08:37 2023/07/29
【摘要】 前言上一篇文章我们介绍到PHP的字符串有很多相关的处理函数,今天就先来详细介绍PHP字符串相关的输出函数以及格式化输出函数。在web的开发中,网页上大部分内容显示的都是文字或者图片,且文字居多。所以在实际开发中,对字符的处理和展示是最多。如果按用户的需求通过PHP动态输出这些文字,就需要将网页上的文字定义为字符串,然后再通过PHP的一些字符串输出函数将其输出。比如我们最常用于打印字符串的ec...

前言

上一篇文章我们介绍到PHP的字符串有很多相关的处理函数,今天就先来详细介绍PHP字符串相关的输出函数以及格式化输出函数。在web的开发中,网页上大部分内容显示的都是文字或者图片,且文字居多。所以在实际开发中,对字符的处理和展示是最多。如果按用户的需求通过PHP动态输出这些文字,就需要将网页上的文字定义为字符串,然后再通过PHP的一些字符串输出函数将其输出。比如我们最常用于打印字符串的echo()和print(),在没有使用测试工具的情况下,我们在编写代码的时候,会常用echo()或者print()输出结果来调试程序。我们常用的输出函数大致有echo(),print(),die(),printf(),sprintf()。接下来我们就逐一详细介绍这些函数。

常用的echo()函数

echo()函数用于输出一个或多个字符串,是在PHP中使用最多最频繁的一个函数,因为使用它的效率要比其他字符串输出函数的效率高.echo()实际上并不是一个函数,而是PHP的一个语言结构,所以无须对其使用括号。也就是说无须使用函数调用的方式去调用它,而且,如果希望向echo()传递一个或者多个参数,那么使用括号会发生解析错误.此函数的语法格式如下:

void echo(string arg1 [, string ...]) //使用时可省略括号

该函数的参数可以是一个或多个要输出字符串,如果用户想要传递一个以上的参数到此函数,不能使用括号将参数括起来,如以下示例:

<?php
$str = "hello";
$str2 = "world";
echo $str;
echo "<br>";
echo $str . "<br>world<br>";
echo "hello
	world
	<br>";//将文本转换成多行输出,代码可读性更高
echo $str,$str2;

上篇文章中,我们也使用到PHP中的字符串的链接符".",其实除了"."之外,还可以使用逗号","来作为字符串的连接符

执行结果如下:

print()函数

该函数的功能和echo()函数一样,他有返回值,若成功则返回-1,失败则返回0.比如:传输中途客户的浏览器突然挂了,则会造成输出失败的情况.该函数的执行效率没有echo()函数高.使用示例如下:

<?php
$str = "hello";
$str2 = "world";
echo $str;
print($str2);

执行结果:

die()函数和exit()函数

die()函数是exit()函数的别名.这一点我们在在之前的文章中也有所提及.如果参数是一个字符串,则该函数会在退出前输出字符串,如果参数是一个整数,这个值会被用作退出的状态.退出状态的值在0-254之间,退出状态255由PHP保留,不会被使用,状态0用于成功地终止程序.下面我们看看例子:

<?php
$str = "hello";
fopen($str, "r") or die("终止信息是:".$str); //如果打开文件失败则输出一条提示信息并退出程序

执行结果:

格式化输出:printf()函数

printf()函数用于输出格式化的字符串,和C语言中的同名函数用法一样,而且作用都是格式化输出字符串。第一个参数为必选参数,是规定的字符串以及如何格式化其中的变量。还可以有多个可选参数,是规定插入到第一个参数的格式化字符串中对应%符号处的参数,其实第一个%在这里就相当于一个占位符或者说是定位的替换字符。使用语法如下:

printf(format, arg1, arg2,...,argn)  //输出格式的字符串

第一个参数中使用的转换格式是以百分号(%)开始到转换字符结束,能够转换的格式如下:

%%:返回百分比符号。

%b: b在这里是binary,代表二进制数。

%c: 依照ASCII值的字符。

%d: 带符号的十进制数。

%e: 科学计数法,如:1.5e+3。

%u: 无符号十进制数。

%f: 浮点数(float)(local settings aware)。

%F: 浮点数(not local settings aware)。

%o: 八进制数。

%s: 字符串。

%x: 十六进制数(小写字母)。

%X: 十六进制数(大写字母)。

arg1,arg2...arg1等参数将插入到字符串中的百分号(%)符合处.该函数是逐步执行的.在第一个%符号中,插入arg1,在第二个%符号出,插入arg2;以此类推。如果%符号多比arg参数还多,则必须使用占位符。占位符被插入%符号之后,由数字和“\$”组成。

<?php
$str = "张三";
$digital = 12345;

printf("你好! %s ,你上月薪资为:%u元<br>", $str, $digital);//将字符串$str在第一个参数中的%号处输出,按%s输出,整型数据按%u输出,一一对应

printf("你好! %s ,你上月薪资为:%0.2f元<br>", $str, $digital);//将整型按照浮点数输出,并保留小数点后2位

//使用占位符
$format = "你好,%2\$s,你上月工资为: %1\$d元.<br>
			你好,%2\$s,你本月工资一样为: %1\$d元.<br>";
			
printf($format, $digital, $str);

执行结果如下:

sprintf()函数

sprintf()函数的用法和printf()函数的用法类似,但sprintf()并不是输出字符串,而是把格式化的字符串以返回值的形式写入到一个变量中。这样就可以在需要的时候使用格式化后字符串。直接看实际更容易理解:

<?php
$digital = 12345;

$str = sprintf("%0.2f",$digital);//将整型保留小数点后2位并赋值给变量$str
echo $str;//在有效的作用范围内,都可使用格式化后的数据$str

执行结果如下:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。