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 相关文章推荐
phpfans留言版用到的install.php
Jan 04 PHP
php分页思路以及在ZF中的使用
May 30 PHP
thinkphp实现多语言功能(语言包)
Mar 04 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
php计算一个文件大小的方法
Mar 30 PHP
PHP中each与list用法分析
Jan 08 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
phpstudy后门rce批量利用脚本的实现
Dec 12 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 PHP
PHP命令行与定时任务
Apr 01 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
使用apache模块rewrite_module (转)
2007/02/14 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
javascript编程起步(第二课)
2007/01/10 Javascript
项目实践之javascript技巧
2007/12/06 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
IE6浏览器中window.location.href无效的解决方法
2014/11/20 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
浅谈js闭包理解
2019/03/28 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
Python import用法以及与from...import的区别
2015/05/28 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
解读python logging模块的使用方法
2018/04/17 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
如何用Python绘制3D柱形图
2020/09/16 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
高考自主招生自荐信
2013/10/20 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
初二学生评语大全
2014/12/26 职场文书
客房部经理岗位职责
2015/02/02 职场文书
2015年安全月活动总结
2015/03/26 职场文书
致接力运动员加油稿
2015/07/21 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
高中政治教师教学反思
2016/02/23 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP