php中echo()和print()、require()和include()等易混淆函数的区别


Posted in PHP onFebruary 22, 2012

1.echo和print的区别

PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1。

$r = print "Hello World";

这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。

2.include与require的区别

include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面代码中,如果变量$a为真,则将包含文件a.php:

if($a){
include("a.php");
}

而require()则和include()不同,不管$a取何值,下面的代码将把文件a.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 的值,看下边例子:
$id=0;
emptyempty($id)?print "我是空的":print "我是$id ."; //结果:我是空的
!isset($id)?print "我是空的":print "我是$id .";//结果:我是0

6.==(等)和===(恒等)的区别

回顾上面第四条空字符串("")和NULL的区别,再来看一个例子:

'' == NULL;
'' === NULL;

运行之后你会发现第一个为true,而第二个则为false!可见==只是比较值是否相等,而===则不但比较值,还会比较类型,更为严格。

PHP 相关文章推荐
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
PHPExcel内存泄漏问题解决方法
Jan 23 PHP
php文件操作之小型留言本实例
Jun 20 PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 PHP
PHP实现仿Google分页效果的分页函数
Jul 29 PHP
CI框架表单验证实例详解
Nov 21 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
Oct 10 PHP
Laravel使用模型实现like模糊查询的例子
Oct 24 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 PHP
我的php学习笔记(毕业设计)
Feb 21 #PHP
PHP中运用jQuery的Ajax跨域调用实现代码
Feb 21 #PHP
修改PHP的memory_limit限制的方法分享
Feb 21 #PHP
php中取得文件的后缀名?
Feb 20 #PHP
ThinkPHP写第一个模块应用
Feb 20 #PHP
for循环连续求和、九九乘法表代码
Feb 20 #PHP
phpmail类发送邮件函数代码
Feb 20 #PHP
You might like
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
一些常用的JS功能函数代码
2009/06/23 Javascript
用js来获取上传的文件名纯粹是为了美化而用
2013/10/23 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
vue.js的安装方法
2017/05/12 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
微信小程序实现侧边栏分类
2019/10/21 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
bpython 功能强大的Python shell
2016/02/16 Python
python中set常用操作汇总
2016/06/30 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
python爬取网页转换为PDF文件
2018/06/07 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
.NET常见笔试题集
2012/12/01 面试题
创业计划书的写作技巧及要点
2014/01/31 职场文书
优秀教师获奖感言
2014/01/31 职场文书
安全生产目标责任书
2014/04/14 职场文书
五四青年节活动总结
2015/02/10 职场文书
政府会议通知范文
2015/04/15 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书