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 相关文章推荐
PHP 得到根目录的 __FILE__ 常量
Jul 23 PHP
关于PHP语言构造器介绍
Jul 08 PHP
利用PHP将部分内容用星号替换
Apr 21 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
PHP MPDF中文乱码的解决方式
Dec 08 PHP
php实现异步数据调用的方法
Dec 24 PHP
利用php获得flv视频长度的实例代码
Oct 26 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
Jul 31 PHP
PHP7创建销毁session的实例方法
Feb 03 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
May 02 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
ajax缓存问题解决途径
2006/12/06 PHP
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
jQuery EasyUI 入门必看
2016/06/03 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
深入浅出vue图片路径的实现
2019/09/04 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
python 链接和操作 memcache方法
2017/03/04 Python
Python小进度条显示代码
2019/03/05 Python
详解Python传入参数的几种方法
2019/05/16 Python
python配置文件写入过程详解
2019/10/19 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
写自荐信有哪些不宜?
2013/10/17 职场文书
银行办理业务介绍信
2014/01/18 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
护士工作失误检讨书
2014/09/14 职场文书
绵山导游词
2015/02/05 职场文书
考试没考好检讨书
2015/05/06 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript
Python socket如何解析HTTP请求内容
2022/02/12 Python