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 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 PHP
php巧获服务器端信息
Dec 06 PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 PHP
php程序效率优化的一些策略小结
Jul 17 PHP
批量去除PHP文件中bom的PHP代码
Mar 13 PHP
php入门之连接mysql数据库的一个类
Apr 21 PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
Mar 14 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 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统计二维数组元素个数的方法
2013/11/12 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
php字符串操作常见问题小结
2016/10/11 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
js函数调用的方式
2014/05/06 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
js精确的加减乘除实例
2017/11/14 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
Python实现子类调用父类的方法
2014/11/10 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
python logging添加filter教程
2019/12/24 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
爸爸的花儿落了教学反思
2014/02/20 职场文书
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
集中整治工作方案
2014/05/01 职场文书
2014年保管员工作总结
2014/11/18 职场文书
支行行长岗位职责
2015/02/15 职场文书