原来,empty() 和 isset() 虽然都是变量处理函数,它们都用来判断变量是否已经配置,它们却是有一定的区别:empty还会检测变量是否为空、为零。...比如检测 id 变量,当 id=0 时,用empty() 和 isset() 来检测变量 id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 id 的值:...isset ($id)) $id = 1 ; print $id; // 得到 0 要说它们的联系,其共同点就是empty()和isset()都是变量处理函数,作用是判断变量是否已经配置...单从empty()和isset()这两个函数本身来考虑的话会把人弄得更糊涂,换一个角度来它。empty()和isset()的处理对象无外乎未定义变量,0,空字符串。...TRUE,isset()会返回FLASE; 手册中对empty()的解释如下: 描述bool empty( mixed var ) 如果 var 是非空或非零的值,则 empty() 返回 FALSE
区别: empty() 函数用于检查一个变量是否为空。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。...对于 0、false、空字符串、空数组的判断上,empty() 可以识别为空,isset() 则不能识别。...""; } ##结果 empty:变量为空 isset:变量未设置或变量为空 2、对于 "" (空字符串) 的判断 // 对于 "" (空字符串) 的判断 $a = ""; if (empty(...""; } ##结果 empty:变量为空 isset:变量已设置且不为空 3、对于 0 (作为整数的0) 的判断 // 对于 0 (作为整数的0) 的判断 $a = 0; if (empty(...""; } ##结果 empty:变量为空 isset:变量已设置且不为空 4、对于 0.0 (作为浮点数的0) 的判断 // 对于 0.0 (作为浮点数的0) 的判断 $a = 0.0; if
PHP 中 empty 和 isset 函数时怎么判断变量的?...isset 和 empty 函数最终都执行了 zend_do_isset_or_isempty 函数,此外,实际上,empty 不是一个函数,而是一个语言结构,语言结构是在PHP程序运行前编译好的。...参数说明 对于empty,在 PHP5.5 版本以前,empty 只支持变量参数,其他类型的参数会导致解析错误,比如函数调用的结果不能作为参数。...对于isset,如果变量被如 unset 的函数设为 NULL,则函数会返回 false。如果多个参数被传递到 isset 函数,那么只有所有参数都被设置 isset 函数才会返回 true 。...从左到右计算,一旦遇到没被设置的变量就停止。
无传参时,值为null empty: true isset: false 有传参,无传值,(xx=),值为"" empty: true isset: true 有传参,传值为0,(xx=0),...值为“0” string类型 empty: true isset: true 有传参,传值为非0,(xx=abc),值为“abc” string类型 empty: false isset: true
empty 如果 变量 是非空或非零的值,则 empty() 返回 FALSE。...换句话说,、0、0、NULL、FALSE、array()、var $var、未定义; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。...注意,isset对于NULL值变量,特殊处理。 is_null 检测传入值【值,变量,表达式】是否是null,只有一个变量定义了,且它的值是null,它才返回TRUE ..../true var_dump(empty($b));//true var_dump(empty($c));//true var_dump(empty($d));//true var_dump(empty...($e));//true var_dump(empty($f));//true var_dump(isset($a));//false var_dump(isset($b));//true var_dump
empty:只要变量是否为 "" 或者 0 ,或者是 false 和 null ,都会返回 true ;isset:是判断变量是否存在,只要你这个变量不是 null 或未赋值,返回结果都是 true ;...而 is_null :正好 isset 的反结果。...isset($_GET['a']); //如果得不到变量a的值echo empty($_GET['a']); //如果变量a的值是空 1、empty 判断一个变量是否为空null、false、0.0、0...isset //判断变量是否已存在(配置) unset //把变量删除(释放)掉 empty //判断变量是否为空 is_null //判断变量是否为NULL is_null,我们可以把它看成是!...isset,是 isset 的一个逆操作。
isset($a,$b,$c,$d,$f)); //false unset($a); var_dump(isset($a)); //false (PHP 4, PHP 5, PHP 7) empty...— 检查一个变量是否为空 empty(mixed$var) :bool 当var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE....以下的东西被认为是空的 ,返回TRUE: "" (空字符串) 0 (作为整数的0) 0.0 (作为浮点数的0) "0" (作为字符串的0) NULL FALSE array() (一个空数组) $var...总结: isset 说明 :变量存在且非null 返回true ;变量不存在返回false ; empty 说明 :变量存在且不为空 返回false ;变量存在且为空 返回true ;变量不存在 返回...true ; 判断一个变量是否已经声明的时候 可以使用 isset 函数 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数 判断 一个变量存在且不为空 先用 isset 函数 再用 empty
前言 对于这两个PHP函数大家肯定都很熟悉,但是其二者的区别又有那些呢? 对比 isset | 检测变量是否被设置过 1. 变量不存在,返回FALSE 2....变量存在且值不为NULL,返回TURE empty | 检测变量是否为空 1.变量存在且值为非空非零的值,返回FALSE 2.变量存在且值为空为零时,返回TRUE PHP变量被认为空的几种情况 1."...php $var = 0; // true if (empty($var)) { echo 'true, $var为空'; } // true if (isset($var)) {...> 由此可见,当判断一些变量的时候,不能一味的使用empty或者isset,应该根据实际的情况去使用,如:用户的昵称 如果用户的昵称就是0那你用empty判断不就出问题了嘛,但是如果用户的昵称为空字符串时...,用isset判断也同样会有问题, 所以这种情况下就不能简单的用empty或者isset就进行判断。
isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返回 FALSE。 empty 判断变量是否为空,如果变量是非空 或非零 的值,则 empty() 返回 FALSE。...从中我们可以发现只要变量是""或者0,或者是false和null,只要是这些值empty都会返回true。 isset只是判断变量是否存在,只要你这个变量不是null或未赋值,返回结果都是true。...而is_null正好是isset的反结果,我们可以把它看成是!isset,是isset的一个逆操作。...例如: i=j+1; 这里的is_null(j)为true(可以理解为因为 isset(j)为false,因为没有事先声明 另外需要注意的两点是: (1)empty() 只检测变量,检测任何非变量的东西都将导致解析错误...换句话说,后边的语句将不会起作用: empty(addslashes($name))。 (2)isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。
使用 PHP 进行开发的时候,经常会用到 isset(), empty(), is_null() 这几个函数对数据进行判断,但是这是哪个函数的具体区别其实没有很好的掌握。...正好和 is_null() 函数相反,is_null() 为 TRUE 的情况在 isset() 中就为 FALSE。 如果传递多个参数,将取交集。...Undefined variable 可以看出 isset() 着重检测一个 变量是否设置和这个变量是否有具体的值,当变量满足这两种情况时 isset() 返回TRUE empty() 判读变量是否为空...var); // TRUE $var = ''; empty($var); // TRUE empty($some_undefined_var); // TRUE empty() 为 TRUE 的情况...empty() 的判断,就是变量存在,且值不为 ""、0、"0"、NULL、FALSE、array() 以及只是单纯定义一个变量 $var。 ----
如果没有设置变量,变量未赋值,或变量被设为NULL,isset()函数就返回NULL。正好和is_null()函数相反,is_null()为TRUE的情况在isset()中就为FALSE。有意思!...); // FALSE Undefined variable 可以看出isset()着重检测一个 变量是否设置和这个变量是否有具体的值,当变量满足这两种情况时isset()返回TRUE defined(...请见上面的类型比较表empty()那一列你就明白哪些情况是空的情形了。还有其他一些函数的参照。...来看一些例子: $myvar = NULL; empty($myvar); // TRUE $myvar = 0; empty($myvar); // TRUE $myvar = FALSE; empty...empty()的判断,就是变量存在,且值不为””、0、”0″、NULL、FALSE、array()以及只是单纯定义一个变量var。
做php开发时候,通常会用到empty,isset,is_null这几个函数,使用不当的话甚至给自己的程序带来一些安全隐患的bug。很多时候,对于isset,empty都认为差不多。...下面我们分别介绍一下这三个函数的区别和使用。 empty 如果 变量 是非空或非零的值,则 empty() 返回 FALSE。...""; if (empty($c)) echo '$c 为空' . ""; if (empty($d)) echo '$d 为空' . ""; // 以上输出皆为空 isset 如果 变量 存在(非NULL...注意,isset对于NULL值变量,特殊处理。 代码示例: $a = ''; $a['c'] = ''; if (!isset($a)) echo '$a 未被初始化' . ""; if (!...isset($b)) echo '$b 未被初始化' . ""; if (isset($a['c'])) echo '$a 已经被初始化' . ""; // 显示结果为 // $b 未被初始化 // $
php /** 在这项研究开始时,有那么多的人不能很好的运用isset,empty,is_null正确null,false等待值回报值做出正确的推理,在这里,我自己总结通过学习小知识,随后的知识...(); //2.分别针对不同的函数进行測试以上的数据类型返回值。...//2.1下面上对empty()函数的打印 var_dump(empty($a)); //输出true var_dump(empty($b)); //输出true var_dump(empty...($f)); //输出true //分析:仅仅要数据类型是否为空或假,empty()就输出true //2.2对isset进行数据返回类型測试 var_dump(isset($a)); ...NULL和没有定义。
isset()函数是PHP中的内置函数,它检查变量是否已设置且不为NULL。...此函数还检查声明的变量,数组或数组键是否具有空值,如果是,isset()返回false,它在所有其他可能的情况下返回true。...empty()函数是empty()函数的否定或补充。empty()函数与!isset()函数相当,而!empty()函数等于isset()函数。 例: <?...输出: 0 is considered empty 1 is considered set 检查两个函数的原因: isset()和!empty()函数类似,两者都将返回相同的结果。但唯一的区别是!...当变量不存在时,empty()函数不会生成任何警告或电子通知。它足以使用任何一个功能。通过将两个功能合并到程序中会导致时间流逝和不必要的内存使用。 例: <?
本文实例讲述了php中isset与empty函数的困惑与用法。...分享给大家供大家参考,具体如下: 在学习php有一段时间之后,感觉自己的基础知识还是有点不牢固,有的问题就不怎么知道,比如就有一个,在判断一个变量是否为空的情况下,我就不知道是用isset()还是empty...empty():用于判断一个变量是否为空,如果是整形的0,浮点型的0.0,字符型的’ ‘和’0’,还有布尔型的false,NULL型的null,空数组等 <?...总结:如果是判断一个变量是否存在,可以用isset()和empty();如果判断变量的值是否为空,那么就用empty()。...注意:以前我在做项目的时候,出现了这样的一个问题,我把select下拉列表框的选中的值传到服务器,服务器从超全局数组中获取到了值,但是当时我不清楚isset()和empty()的区别,当时只知道他们都能判断变量是否存在
但也有写差别: empty()是只移除了 指定元素中的所有子节点,拿$(“div”).empty()来说,他只是把 移出节点 中的文本给移除了,而留下 了 ,仍保留其在dom中所占的位置。...remove()则是把其从dom中删除,而不会保留其所占的位置。 该方法不会把匹配的元素从 jQuery 对象中删除,因而可以在将来再使用这些匹配的元素。...但除了这个元素本身得以保留之外,remove() 不会保留元素的 jQuery 数据。其他的比如绑定的事件、附加的数据等都会被移除。...例: 这是 节点 删除 执行$(“span”).empty()其结果是 节点 执行$(“span
但也有写差别: empty()是只移除了 指定元素中的所有子节点,拿$(“div”).empty()来说,他只是把 移出节点 中的文本给移除了,而留下 了,仍保留其在dom中所占的位置。...remove()则是把其从dom中删除,而不会保留其所占的位置。 该方法不会把匹配的元素从 jQuery 对象中删除,因而可以在将来再使用这些匹配的元素。...但除了这个元素本身得以保留之外,remove() 不会保留元素的 jQuery 数据。其他的比如绑定的事件、附加的数据等都会被移除。...例: 这是 节点 删除 执行$(“span”).empty()其结果是 节点 执行$(“span
JDK 1.8.0_162 ArrayList源码中EMPTY_ELEMENTDATA和DEFAULTCAPACITY_EMPTY_ELEMENTDATA的区别 写在前面的话: 关于阅读源码:刚开始学习的时候...本文只是讨论JDK 1.8.0_162中EMPTY_ELEMENTDATA和DEFAULTCAPACITY_EMPTY_ELEMENTDATA的区别,关于源码详细解读请Google。...在ArrayList中有关EMPTY_ELEMENTDATA(下文用EE代替)和DEFAULTCAPACITY_EMPTY_ELEMENTDATA(下文用DEE代替)的声明定义如下: /** * Shared...我们将this(DEFAULTCAPACITY_EMPTY_ELEMENTDATA) * 和EMPTY_ELEMENTDATA区别开来,以便在添加第一个元素时知道要膨胀多少。...总结之EMPTY_ELEMENTDATA和DEFAULTCAPACITY_EMPTY_ELEMENTDATA的区别:EMPTY_ELEMENTDATA是为了优化创建ArrayList空实例时产生不必要的空数组
要移除页面上节点是开发者常见的操作,jQuery提供了几种不同的方法用来处理这个问题,这里我们开仔细了解下empty和remove方法 empty 顾名思义,清空方法,但是与删除又有点不一样,因为它只移除了...这个方法不仅移除子元素(和其他后代元素),同样移除元素里的文本。因为,根据说明,元素里任何文本字符串都被看做是该元素的子节点。...empty()与remove([expr])二个方法,两个都是删除元素,但是两者还是有区别: 要用到移除指定元素的时候,jQuery提供了empty()与remove([expr])二个方法,两个都是删除元素...,但是两者还是有区别 empty方法 严格地讲,empty()方法并不是删除节点,而是清空节点,它能清空元素中的所有后代节点 empty不能删除自己本身这个节点 remove方法 该节点与该节点所包含的所有后代节点将同时被删除...提供传递一个筛选的表达式,删除指定合集中的元素 以上就是二者的区别,我们具体通过右边代码部分加深理解 <!
前不久写过一篇文章,描述如果表包含了触发器,在通过IMP导入数据的时候,原本的EMPTY_LOB将被转化为NULL。有朋友在文章的回复中问,EMPTY_LOB和NULL的区别,这里就简单描述一下。...包含触发器的LOB表执行IMP导致EMPTY_LOB变为空: http://yangtingkun.itpub.net/post/468/495024 说实话,二者其实差别还是相当大的。...一个表示的未知,另一个表示的空的大对象。需要注意空的大对象并不是空的概念: ? 使用IS NULL作为条件进行判断,EMPTY_LOB是查询不到的。...利用DBMS_LOB.GETLENGTH也可以看出二者的区别: ? ? 虽然EMPTY_LOB没有包含LOB内容,但是LOB头信息已经存在,因此需要占用不小的空间。...二者最大的区别在于: EMPTY_LOB虽然没有LOB的内容,但是已经做好了插入LOB内容的准备,用户获取到LOB的头信息后就可以直接插入数据了。 而对于NULL来说,显然是不能直接修改的。 ?
领取专属 10元无门槛券
手把手带您无忧上云