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 相关文章推荐
如何做到多笔资料的同步
Oct 09 PHP
PHP4实际应用经验篇(5)
Oct 09 PHP
网页游戏开发入门教程三(简单程序应用)
Nov 02 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
Apr 15 PHP
Zend的Registry机制的使用说明
May 02 PHP
php采用file_get_contents代替使用curl实例
Nov 07 PHP
php自定义错误处理用法实例
Mar 20 PHP
win7安装php框架Yii的方法
Jan 25 PHP
php中static 静态变量和普通变量的区别
Dec 01 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
Apr 04 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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
Syphon 秘笈
2021/03/03 冲泡冲煮
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
js实现选项卡效果
2020/03/07 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
Tomcat的缺省是多少,怎么修改
2014/04/09 面试题
教师自荐书
2013/10/08 职场文书
班主任工作经验材料
2014/02/02 职场文书
《商鞅南门立木》教学反思
2014/02/16 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
2014年班主任工作总结
2014/11/08 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
Python 绘制多因子柱状图
2022/05/11 Python