php部分---include()与require()的区别、empty()与isset is_null的区别与用法详解
include()与require()的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。
1.处理错误的方式:
require()一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误
include()一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。
2.返回值
include有返回值,而require没有
3.引入时间不同:
require()通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。
include()一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。
isset()与empty()两者都是测试变量用的。
isset()是测试变量是否被赋值;
empty()是测试一个已经被赋值的变量是否为空。
注意:如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示。
如果一个变量被赋空值,$aa=”“或者$aa=0或者$aa=false,那么empty($aa)返回真,isset($aa)也返回真,就是说赋空值不会注销一个变量。
要注销一个变量,可以用 unset($aa)或者$aa=NULL。
误区:当一个变量值等于0时,empty()也会成立(True)。
empty 和 isset 虽然都是变量处理函数,它们都用来判断变量是否已经配置,它们却是有一定的区别:
empty还会检测变量是否为空、为零。当一个变量值为0,empty 认为这个变量同等于空,即相当于没有设置,返回true
而isset则认为变量已生成,返回0。
<?php
$aa=0;
var_dump(empty($aa)); //返回true
var_dump(isset($aa)); //返回true
?>
这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty 要小心,这个时候用 isset 取代它更明智一些。
empty用于判断是否为空, 空的概念非常广泛, 包括:
(1)数字0;
(2)空的字符;
(3)定义为null的变量;
(4)定义为false的变量;
(5)空数组;
(6)未定义变量。
更重要的, empty只能判断变量, 而不能判断其他任何形式的内容, 也就是说
empty(false);会触发一个错误, 而不是返回true
PHP的isset()函数 一般用来检测变量是否设置
功能:检测变量是否设置
返回值:
若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE
更多说明:
使用 unset() 释放变量之后,它将不再是 isset()。
PHP函数isset()只能用于变量,传递任何其它参数都将造成解析错误。
检测常量是否已设置可使用 defined() 函数。
PHP的empty()函数 判断值为否为空
功能:检查一个变量是否为空
返回值:
若变量不存在则返回 TRUE
若变量存在且其值为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE
若变量存在且值不为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 FALSE
检测常量是否已设置可使用 defined() 函数。
例子: empty() 与 isset() 的一个简单比较
代码如下:
<?php
$var = 0; if (empty($var)) {
echo '11111111';// 结果为 true,因为 $var 为空
} if (!isset($var)) {
echo '111111';// 结果为 false,因为 $var 已设置
}
?>
附加:
php中几个函数的比较 |
|
|
php部分---include()与require()的区别、empty()与isset is_null的区别与用法详解的更多相关文章
- PHP版本的区别与用法详解
在我们安装PHP模块时,有时需要注意PHP编译的版本,下面讲解下PHP中VC6.VC9.TS.NTS版本的区别与用法详解,介绍php的两种执行方式. 1. VC6与VC9的区别:VC6版本是使用Vis ...
- magic_quotes_gpc和magic_quotes_runtime的区别和用法详解
当你的数据中有一些 " ' 这样的字符要写入到数据库里面,又想不被过滤掉的时候,它就很有用,会在这些字符前自动加上,如 中国地大物博"哈哈" 中国\地大物博&q ...
- PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Thread safe(线程安全)是运行在Apache上以模块的PHP上,如果你以CGI的模式运行PHP,请选择非线程安全模式(non-thread safe). 1. VC6与VC9的区别: VC6 ...
- Shell编程中while与for的区别及用法详解【转】
在shell编程中经常用到循环,常用的循环有for和while循环两种.while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别. 一.常用 ...
- SQL学习笔记之SQL中INNER、LEFT、RIGHT JOIN的区别和用法详解
0x00 建表准备 相信很多人在刚开始使用数据库的INNER JOIN.LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的例子通俗易懂的讲解这 ...
- require.js的用法详解
require.js的诞生是为了解决两大问题,第一实现js文件的异步加载,避免网页失去响应,第二管理模块之间的依赖性,便于代码的编写和维护. 一.为什么要用require.js? 最早的时候,所有Ja ...
- 全网最详细的实用的搜索工具Listary和Everything对比的区别【堪称比Everything要好】(图文详解)
不多说,直接上干货! 引言 无论是工作还是科研,我们都希望工作既快又好,然而大多数时候却迷失在繁杂的重复劳动中,久久无法摆脱繁杂的事情. 你是不是曾有这样一种想法:如果我有哆啦A梦的口袋,只要拿出 ...
- (转) mysql之status和variables区别及用法详解
原文:http://blog.csdn.net/andyzhaojianhui/article/details/50052117
- expdp / impdp 用法详解 ,和exp / imp 的区别
一 关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项:EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用.EXPDP和IMPDP是服务端的工具程 ...
随机推荐
- node cheerio
所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成. ###cheerio ...
- Memcache 详解
这里收集了经常被问到的关于memcached的问题 一般的问题 什么是memcached? 从哪获得memcached? 怎么安装memcached? 哪些平台可以运行memcached? 什么情况下 ...
- raspbian 静态IP
edit file: /etc/network/interfaces change line: iface eth0 inet dhcp iface eth0 inet static address ...
- xcode开发的6个小技巧
Xcode是iPhone和iPad开发者用来编码或者开发iOS app的IDE.Xcode有很多小巧但很有用的功能,很多时候我们可能没有注意到它们,也或者我们没有在合适的水平使用这些功能简化我们的iO ...
- 对于C#中的一些点滴你真的理解了吗?
废话不多说看题目,看看我们自己真的理解了吗? 1.如下代码输出的结果是什么? public class A{ public virtual void Func(int number=10) { Co ...
- C# 启动关闭.exe进程(转)
后台代码: 1 using System.Diagnostics; 2 3 protected void Button1_Click(object sender, EventArgs e)4 ...
- HTML--1标签表格
HTML 内容(Hyper Text Markup Language,超文本标记语言) CSS 网页美化 Javascript 脚本语言 打开DREAMWEAVER,新建HTML,如下 ...
- poj2193
//Accepted 368K 532MS //线性dp //dp[i][j]表示前i位最后一个是j的排列数 //dp[i][j]=sum(dp[i-1][h]) h*2<=j #include ...
- Java Inner class && nested class
Java中,Inner Class(不被 static修饰)可以访问outer class 的所有成员(包括私有成员),同时,内部类 的创建必须经由外部类的实例! nested class 有stat ...
- php大力力 [032节] php设计时候遇见麻烦:XQB50-H8268 进水电磁阀
海信洗衣机 无法进水,刚才写程序,洗衣机不进水,在叫唤,去看了看,上网查了查,估计是进水电磁阀坏了. 打算自己拆了查出型号,淘宝买,自己修. 想起以前洗衣机坏了,找人修,对方报价好几百,淘宝看洗衣机主 ...