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&mysql 日期操作小记

    php&mysql 日期操作小记

    在php的很多成熟框架中,数据库存储时间都是用int类型而不是datetime类型的
    2012-02-02
  • 深入eAccelerator与memcached的区别详解

    深入eAccelerator与memcached的区别详解

    本篇文章是对eAccelerator与memcached的区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP实现对数组简单求交集,差集,并集功能示例

    PHP实现对数组简单求交集,差集,并集功能示例

    这篇文章主要介绍了PHP实现对数组简单求交集,差集,并集功能,涉及php数组操作函数array_diff、array_intersect及array_merge的使用技巧,需要的朋友可以参考下
    2017-10-10
  • php实现批量修改文件名称的方法

    php实现批量修改文件名称的方法

    这篇文章主要介绍了php实现批量修改文件名称的方法,涉及php针对文件的遍历及文件名的替换操作相关技巧,需要的朋友可以参考下
    2016-07-07
  • php的curl封装类用法实例

    php的curl封装类用法实例

    这篇文章主要介绍了php的curl封装类用法,以实例形式较为详细的讲述了curl封装类及其使用方法,并总结了GET与POST的用法,需要的朋友可以参考下
    2014-11-11
  • PHP标准类(stdclass)用法示例

    PHP标准类(stdclass)用法示例

    这篇文章主要介绍了PHP标准类(stdclass)用法,结合实例形式分析了php内置标准类的原理与使用方法,需要的朋友可以参考下
    2016-09-09
  • PHP实现删除非站内外部链接实例代码

    PHP实现删除非站内外部链接实例代码

    一般在做网站系统的时候,出于优化等因素的考虑需要再添加文章的时候删除掉不是本站的链接,对于这一要求可以通过让PHP处理下文章内容,来达到文章外部链接的自动删除的效果。需要的朋友可以参考下
    2014-06-06
  • phpstudy无法启动MySQL服务的解决方法

    phpstudy无法启动MySQL服务的解决方法

    个人比较懒,所以想到用phpstudy这个软件进行控制,但这个时候问题出现了:在下载phpstudy后想要启动MySQL服务,但是总是无法启动,所以本文给大家介绍了如何解决phpstudy无法启动MySQL服务的问题,需要的朋友可以参考下
    2024-06-06
  • PHP字符串中插入子字符串方法总结

    PHP字符串中插入子字符串方法总结

    这篇文章主要介绍了PHP字符串中插入子字符串方法,对比分析了字符串遍历,substr方法截取与组合,以及直接使用substr_replace函数进行子字符串的插入三种不同的实现方法,涉及php字符串操作的常用技巧,需要的朋友可以参考下
    2016-05-05
  • joomla内置的表单验证功能使用方法

    joomla内置的表单验证功能使用方法

    Joomla有自己的表单验证功能,可以很方便地实现验证,没有通过验证的输入框在提交报错后会用红色边框表示,很清楚地知道漏了那几项没填。
    2010-06-06

最新评论