PHP易混淆函数的区别及用法汇总

 更新时间:2014年11月22日 11:32:35   投稿:shichen2014   我要评论
这篇文章主要介绍了PHP易混淆函数的区别及用法,实例汇总了如echo和print、include与require、!isset和empty等函数,是非常实用的技巧,需要的朋友可以参考下

本文实例分析了PHP易混淆函数的区别及用法。分享给大家供大家参考。具体分析如下:

1.echo和print的区别
PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1。

PHP代码:

复制代码 代码如下:
$r = print "Hello World";

这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。

2.include与require的区别

include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面代码中,如果变量$a为真,则将包含文件a.php:

PHP代码:

复制代码 代码如下:
if($a){
include("a.php");
}

而require()则和include()不同,不管$a取何值,下面的代码将把文件a.php包含进文件里:

PHP代码:

复制代码 代码如下:
if($a){
require("a.php");
}

在错误处理方面,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行!但requre却会给你来个致命错误。
当然,从字面意思上我们也可以理解七分:requre是很强硬的请求、要求的意思。

3.require_once()和include_once()语句

题外话了,因为长的像,简单require_once()和include_once()语句分别对应于require()和 include()语句。 require_once() 和include_once()语句主要用于需要包含多个文件时,可以有效地避免把同一段代码包含进去而出现函数或变量重复定义的错误。

4.空字符串(")和NULL的区别

PHP中空字符串和NULL都是以值为0存储的,但是他们的类型并不一样,你可以试一下echo gettype(");和echo gettype(NULL);你会发现他们打印出来的分别是string和NULL,当然还有0也容易混淆,你可以试试echo gettype(0);打印一下类型,会发现0的类型是integer(整型),可见字符串(")、NULL和0是"等值"但不等类型。

5.!isset和empty的区别

从字面意思上我们就可以明白:empty是判断一个变量是否为"空",而isset 则是判断一个变量是否已经设置。但是这里有一点绝对要注意起来:当一个变量值为0,empty 认为这个变量同等于空,即相当于没有设置。比如当我们检测$id 变量的时候,当$id=0 ,用empty和isset来检测变量$id是否已经配置,两都将返回不同的值:empty 认为没有配置,isset 则能够取得 $id 的值,看下边例子:

PHP代码:

复制代码 代码如下:
$id=0;
empty($id)?print "我是空的":print "我是$id ."; //结果:我是空的
!isset($id)?print "我是空的":print "我是$id .";//结果:我是0

6.==(等)和===(恒等)的区别

回顾上面第四条空字符串("")和NULL的区别,再来看一个例子:

PHP代码:

复制代码 代码如下:
" == NULL;
" === NULL;

运行之后你会发现第一个为true,而第二个则为false!可见==只是比较值是否相等,而===则不但比较值,还会比较类型,更为严格。

希望本文所述对大家的php程序设计有所帮助。

相关文章

  • php 二维数组时间排序实现代码

    php 二维数组时间排序实现代码

    这篇文章主要介绍了php 二维数组时间排序实现代码,需要的朋友可以参考下
    2016-11-11
  • PHP获取链表中倒数第K个节点的方法

    PHP获取链表中倒数第K个节点的方法

    这篇文章主要介绍了PHP获取链表中倒数第K个节点的方法,涉及php针对链表的遍历、判断等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • PHP通过iconv将字符串从utf-8转换为UTF8字符集

    PHP通过iconv将字符串从utf-8转换为UTF8字符集

    PHP通过iconv将字符串从utf-8转换为UTF8字符集的方法,需要的朋友可以参考下。
    2011-07-07
  • PHP eval函数使用介绍

    PHP eval函数使用介绍

    eval()函数中的eval是evaluate的简称,这个函数的作用就是把一段字符串当作PHP语句来执行,一般情况下不建议使用容易被黑客利用
    2013-12-12
  • 谨慎使用PHP的引用原因分析

    谨慎使用PHP的引用原因分析

    PHP中也引入了引用类型,在对对象赋值传递上,基本可视为是同于Java/C#的引用传递(具体请见Objects and references)。但同时又支持在基础类型上通过引用运算符(&)来获得内容的引用。不过在实际的使用中,PHP的引用类型因为整个PHP设计结构而存在着许多的问题,使得在程序出现非预计的结果
    2012-09-09
  • 部署PHP项目应该注意的几点事项分享

    部署PHP项目应该注意的几点事项分享

    这篇文章主要介绍了部署PHP项目应该注意的几点事项,有需要的朋友可以参考一下
    2013-12-12
  • PHP的swoole扩展安装方法详细教程

    PHP的swoole扩展安装方法详细教程

    这篇文章主要为大家分享了PHP的swoole扩展安装方法详细教程,具有实用性和参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 请php正则走开

    请php正则走开

    玩PHP玩了几年了,在刚刚接触PHP的时候感觉正则真的很洋气,我想替换啥就替换啥。然而随着工作的推移,渐渐对正则开发反感起来,正则的速度太慢了,而且特占内存。在一个群里有个网友说,正则速度快,正则简单,正则开发效率高。我并没有与他争辩,因为我刚刚做PHP的时候也是这样的想法。但是正则真的那么好吗?
    2008-03-03
  • 适用于php-5.2 的 php.ini 中文版[金步国翻译]

    适用于php-5.2 的 php.ini 中文版[金步国翻译]

    最近服务器基本上都是使用了php 5.2.*,以前发布的版本的php.ini已经不适用于现在的版本了,特发现了这篇文章特分享给大家。
    2011-04-04

最新评论