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在字符串中查找指定字符串并删除的代码
Oct 02 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
Apr 09 PHP
php截取字符串并保留完整xml标签的函数代码
Feb 06 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
php+ajax实时输入自动搜索匹配的方法
Dec 26 PHP
PHP生成各种常见验证码和Ajax验证过程
Jan 10 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
浅谈mysql_query()函数的返回值问题
Sep 05 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
Oct 13 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
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
php如何获取Http请求
2020/04/30 PHP
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
使用angular写一个hello world
2015/01/23 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
Python入门教程之运算符与控制流
2016/08/17 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
python之yield和Generator深入解析
2019/09/18 Python
python安装gdal的两种方法
2019/10/29 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
求职者应聘的自我评价
2013/10/16 职场文书
保荐人的岗位职责
2013/11/19 职场文书
高中生家长寄语大全
2014/04/03 职场文书
个人租房协议书
2014/04/09 职场文书
学生安全责任书模板
2014/07/25 职场文书
新农村建设汇报材料
2014/08/15 职场文书
团队拓展活动总结
2014/08/27 职场文书
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python