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 相关文章推荐
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
php操作sqlserver关于时间日期读取的小小见解
Nov 29 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
Jul 01 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
Jan 07 PHP
Symfony2安装的方法(2种方法)
Feb 04 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
php中各种定义变量的方法小结
Oct 18 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 PHP
Thinkphp 3.2框架使用Redis的方法详解
Oct 24 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
PHP数组操作汇总 php数组的使用技巧
2011/07/17 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
深入了解js原型模式
2019/05/30 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
windows下python之mysqldb模块安装方法
2017/09/07 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
2020/06/04 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
房地产活动策划方案
2014/05/14 职场文书
优秀员工推荐材料
2014/12/20 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
标准发言稿结尾
2019/07/18 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
总结高并发下Nginx性能如何优化
2021/11/01 Servers
Python实现归一化算法详情
2022/03/18 Python
Vue操作Storage本地化存储
2022/04/29 Vue.js