PHP中几个容易混淆的函数的区别

PHP中有一些函数的功能十分接近,容易造成混淆。虽然功能相当,但在细节问题上可能会有很大出入。所以,如果使用不当,可能会造成一些不必要的麻烦。以下整理了几个日常使用中容易混淆的函数,以备查阅。

 

1. echo、print、print_r、printf、vprintf和sprintf
echo用于输出一个或多个字符串。它实际上并不是函数,而是一个语言结构,所以它并没有返回值。当打印多个变量时,不能像函数调用那样使用括号。
print用于输出一个字符串,有返回值(始终返回int(1))
print_r用于打印关于一个变量的易于理解的信息。如果给出的参数是string、integer或float,将打印变量值本身。如果是array,将按照一定的格式显示键和元素。object与数组类似。
printf用于输出一个格式化的字符串,返回输出字符串的长度
vprintf用于输出一个格式化的字符串,但其接受的参数为一个数组,返回输出字符串的长度
sprintf用于返回一个格式化的字符串,不进行输出操作

 

2. require、include、require_once和include_once
require()和include()几乎完全一样,除了处理失败的方式不同之外。include()产生一个Warning而require()则导致一个Fatal Error。所以,如果想在丢失文件时停止处理页面,则应该用require()。
require_once()和include_once()应用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。

 

3. empty与isset
empty用于检查一个变量是否为空,如果待检测变量时非空或非零的值,将返回FALSE。换句话说,""、0、"0"、NULL、FALSE、array()以及没有任何属性的对象都将被认为是空的。
isset用于检测变量是否已设置。以下三种情况将返回FALSE:变量不存在、变量已被unset()释放、变量被设置为NULL

 

4. htmlentities与htmlspecialchars
htmlentities会将所有的字符都转换成HTML实体字符,在中文情况下会造成乱码
htmlspecialchars只转换几个特殊的字符,包括:&、"、'、<以及>

 

5. urlencode与rawurlencode
urlencode返回字符串,此字符串中除了-_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。
rawurlencode按照RFC1738对URL进行编码。与urlencode的区别是,它会将空格编码为'20%'。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值