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 相关文章推荐
4.与数据库的连接
Oct 09 PHP
支持oicq头像的留言簿(二)
Oct 09 PHP
php类中private属性继承问题分析
Nov 01 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
Web程序工作原理详解
Dec 25 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 PHP
试用php中oci8扩展
Jun 18 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
php将远程图片保存到本地服务器的实现代码
Aug 03 PHP
PHP工程师VIM配置分享
Dec 15 PHP
PHP批量去除BOM头内容信息代码
Mar 11 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
Oct 07 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
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
通俗易懂的php防注入代码
2010/04/07 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
python发布模块的步骤分享
2014/02/21 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
浅谈python中的占位符
2017/11/09 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
Python如何安装第三方模块
2020/05/28 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
HEMA英国:荷兰原创设计
2018/08/28 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
大学校园活动策划书
2014/02/04 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
综治工作心得体会
2014/09/11 职场文书