Heim  >  Artikel  >  Backend-Entwicklung  >  empty 和 isset的区别和联系

empty 和 isset的区别和联系

WBOY
WBOYOriginal
2016-06-23 14:34:22843Durchsuche

PHP 是一门弱类型的语言, 和 C# / JAVA 不一样, 在声明一个变量的时候, 无需声明它的类型. 因此, 可能会出现很多特殊的值, 偶尔会出现一些奇奇怪怪的问题.

下午, 从国外网站偷来一个真值表, 嘿嘿, 很直观, 很详细. 不错~ 赶紧发上来.

empty 和 isset的区别和联系

要说它们的联系,其共同点就是empty()和isset()都是变量处理函数,作用是判断变量是否已经配置,正是由于它们在处理变量过程中有很大的相似性,才导致对它们的关系认识不足。单从empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂,换一个角度来它。empty()和isset()的处理对象无外乎未定义变量,0,空字符串。
如果变量为0,则empty()会返回TRUE,isset()会返回TRUE;

如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE;

如果变量未定义,则empty()会返回TRUE,isset()会返回FLASE;

手册中对empty()的解释如下:
描述bool empty( mixed var )
如果 var 是非空或非零的值,则 empty()  返回  FALSE 。换句话说,""、0、"0"、 NULL 、 FALSE 、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回  TRUE 。
手册中对isset()的解释如下:
isset()检测变量是否设置
描述bool isset  ( mixed var [, mixed var [, ...]] )
如果 var 存在则返回  TRUE ,否则返回  FALSE 。
如果已经使用 unset()  释放了一个变量之后,它将不再是 isset() 。若使用 isset()  测试一个被设置成  NULL  的变量,将返回  FALSE 。同时要注意的是一个  NULL  字节("\0")并不等同于 PHP 的  NULL  常数。
警告:  isset()  只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined()函数。
当要 判断一个变量是否已经声明的时候 可以使用 isset 函数
当要 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数
当要 判断 一个变量 存在且不为空 先isset 函数 再用 empty 函数

转自:http://dhost.info/yeah/read.php/88.htm

       http://www.cnblogs.com/JemBai/archive/2009/04/21/1440269.html

要说它们的联系,其共同点就是empty()和isset()都是变量处理函数,作用是判断变量是否已经配置,正是由于它们在处理变量过程中有很大的相似性,才导致对它们的关系认识不足。单从empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂,换一个角度来它。empty()和isset()的处理对象无外乎未定义变量,0,空字符串。
如果变量为0,则empty()会返回TRUE,isset()会返回TRUE;

如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE;

如果变量未定义,则empty()会返回TRUE,isset()会返回FLASE;

手册中对empty()的解释如下:
描述bool empty( mixed var )
如果 var 是非空或非零的值,则 empty()  返回  FALSE 。换句话说,""、0、"0"、 NULL 、 FALSE 、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回  TRUE 。
手册中对isset()的解释如下:
isset()检测变量是否设置
描述bool isset  ( mixed var [, mixed var [, ...]] )
如果 var 存在则返回  TRUE ,否则返回  FALSE 。
如果已经使用 unset()  释放了一个变量之后,它将不再是 isset() 。若使用 isset()  测试一个被设置成  NULL  的变量,将返回  FALSE 。同时要注意的是一个  NULL  字节("\0")并不等同于 PHP 的  NULL  常数。
警告:  isset()  只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined()函数。
当要 判断一个变量是否已经声明的时候 可以使用 isset 函数
当要 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数
当要 判断 一个变量 存在且不为空 先isset 函数 再用 empty 函数

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP和ASP的sessionNächster Artikel:php国际化