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


Posted in PHP onNovember 22, 2014

本文实例分析了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 相关文章推荐
初探PHP5
Oct 09 PHP
谈谈PHP语法(3)
Oct 09 PHP
也谈 PHP 和 MYSQL
Oct 09 PHP
虚拟主机中对PHP的特殊设置
Oct 09 PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 PHP
PHP生成网站桌面快捷方式代码分享
Oct 11 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
php获取图片信息的方法详解
Dec 10 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 #PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
Nov 22 #PHP
thinkphp连贯操作实例分析
Nov 22 #PHP
ThinkPHP处理Ajax返回的方法
Nov 22 #PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 #PHP
php中try catch捕获异常实例详解
Nov 21 #PHP
PHP生成不重复标识符的方法
Nov 21 #PHP
You might like
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
Google韩国首页图标动画效果
2007/08/26 Javascript
jquery JSON的解析方式
2009/07/25 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
web打印小结
2017/01/11 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
python http接口自动化脚本详解
2018/01/02 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
工商企业管理实习自我鉴定
2013/12/04 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
模范班主任事迹材料
2014/12/17 职场文书
先进工作者个人总结
2015/02/15 职场文书
银行实习推荐信
2015/03/27 职场文书
小学教研工作总结2015
2015/05/13 职场文书
借条格式范本
2015/05/25 职场文书
2015党建工作简报
2015/07/21 职场文书