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 相关文章推荐
强烈推荐:php.ini中文版(2)
Oct 09 PHP
php 禁止页面缓存输出
Jan 07 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
php单一接口的实现方法
Jun 20 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
PHP MSSQL 分页实例
Apr 13 PHP
smarty自定义函数用法示例
May 20 PHP
PHP操作mysql数据库分表的方法
Jun 09 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
laravel 验证错误信息到 blade模板的方法
Sep 29 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
Sea.JS知识总结
2016/05/05 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
jQuery自适应轮播图插件Swiper用法示例
2016/08/24 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
JS 数组随机洗牌的实例代码
2018/09/12 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
小程序实现搜索框
2020/06/19 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
浅谈python numpy中nonzero()的用法
2018/04/02 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
机械机修工岗位职责
2014/08/03 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书