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 相关文章推荐
打造计数器DIY三步曲(下)
Oct 09 PHP
PHP完整的日历类(CLASS)
Nov 27 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
php格式化时间戳显示友好的时间实现思路及代码
Oct 23 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
php魔术方法功能与用法实例分析
Oct 19 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
PHP join()函数用法与实例讲解
Mar 11 PHP
Swoole4.4协程抢占式调度器详解
May 23 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
ftp类(example.php)
2006/10/09 PHP
PHP中使用BigMap实例
2015/03/30 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
php排序算法实例分析
2016/10/17 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
PHP实现获取文件mime类型多种方法解析
2020/05/28 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
JS的replace方法介绍
2012/10/20 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
python使用cPickle模块序列化实例
2014/09/25 Python
python构建深度神经网络(续)
2018/03/10 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
化学教师自荐信范文
2013/12/28 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
2014年派出所工作总结
2014/11/21 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书