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 相关文章推荐
浅谈apache和nginx的rewrite的区别
Feb 22 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
php对关联数组循环遍历的实现方法
Mar 13 PHP
简单的自定义php模板引擎
Aug 26 PHP
thinkphp配置文件路径的实现方法
Aug 30 PHP
php实现的简单数据库操作Model类
Nov 16 PHP
php常用正则函数实例小结
Dec 29 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 22 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
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
Yii2 queue的队列使用详解
2019/07/19 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
JQuery实现样式设置、追加、移除与切换的方法
2015/06/11 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
python实现字典嵌套列表取值
2019/12/16 Python
python实现电子词典
2020/03/03 Python
python 制作磁力搜索工具
2021/03/04 Python
社区消防工作实施方案
2014/03/21 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
谢师宴答谢词
2015/01/05 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS