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 相关文章推荐
二十行语句实现从Excel到mysql的转化
Oct 09 PHP
网友原创的PHP模板类代码
Sep 07 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
Mar 20 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
PHP整合七牛实现上传文件
Jul 03 PHP
Zend Framework教程之Resource Autoloading用法实例
Mar 08 PHP
关于php中一些字符串总结
May 05 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
利用PHP获取网站访客的所在地位置
Jan 18 PHP
详细解读php的命名空间(二)
Feb 21 PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 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 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
php采集时被封ip的解决方法
2010/08/29 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
php中的异常和错误浅析
2017/05/03 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
2020/06/18 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
放飞蜻蜓反思
2014/02/05 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
医院保洁服务方案
2014/06/11 职场文书
活动总结报告怎么写
2014/07/03 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis