• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php 相等性比较 以及 empty,isset, isnull

php 搞代码 3年前 (2022-01-23) 27次浏览 已收录 0个评论

变量为空

以下的东西被认为是空的:

  • “” (空字符串)
  • 0 (作为整数的0)
  • 0.0 (作为浮点数的0)
  • “0” (作为字符串的0)
  • NULL
  • FALSE
  • array() (一个空数组)
  • $var; (一个声明了,但是没有值的变量)

判断语句中空值返回false,以下代码不会产生任何输出,因为if 语句中的判断都为false:

<code><span>$emptyList</span> = [<span>""</span>,  <span>0</span>, <span>0.0</span>, <span>"0"</span>, <span>NULL</span>, <span>FALSE</span>, <span>array</span>(), <span>$var</span>, ];<span>foreach</span>(<span>$emptyList</span><span>as</span><span>$val</span>) {    <span>if</span> (<span>$val</span>) {        var_dump(<span>$val</span>);    }}</code>

比较运算符: =====

  • ==只涉及到值的比较
<code>var_dump(<span>0</span> == <span>'0.0'</span>); <span>//</span><span>true</span>var_dump(<span>0</span> == <span>''</span>); <span>//</span><span>true</span>var_dump(<span>0</span> == <span>false</span>); <span>//</span><span>true</span></code>
  • === 同时涉及 值 与类型的比较, 更为严格
<code>var_dump(<span>0</span> === <span>'0.0'</span>); <span>//</span><span>false</span>var_dump(<span>0</span> === <span>''</span>); <span>//</span><span>false</span>var_dump(<span>0</span> === <span>false</span>); <span>//</span><span>false</span></code>
  • null 与 空值 通过== 比较, 除了 “0” ,都返回true:
<code><span><span><?php</span><span>$emptyList</span> = [<span>""</span>,  <span>0</span>, <span>0.0</span>, <span>"0"</span>, <span>NULL</span>, <span>FALSE</span>, <span>array</span>(), <span>$var</span>, ];<span>foreach</span>(<span>$emptyList</span><span>as</span><span>$val</span>) {    var_dump(<span>$val</span> == <span>null</span>);}</span></code>

empty, isset, isnull

  • empty:检查一个变量是否为空
<code><?php<span>$emptyList</span> = [<span>""</span>,  <span>0</span>, <span>0.0</span>, <span>"0"</span>, NULL, FALSE, array(), <span>$var</span>, ];foreach (<span>$emptyList</span> as <span>$e</span>) {    var_dump(empty(<span>$e</span>));}/*bool(<span>true</span>)bool(<span>true</span>)bool(<span>true</span>)bool(<span>true</span>)bool(<span>true</span>)bool(<span>true</span>)bool(<span>true</span>)bool(<span>true</span>)*/</code>
  • isset:判断变量var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。
<code><span>$var</span> = <span>1</span>;var_dump(<span>isset</span>(<span>$var</span>)); <span>// true</span><span>unset</span>(<span>$var</span>);var_dump(<span>isset</span>(<span>$var</span>)); <span>// false</span><span>$var</span> = <span>null</span>;var_dump(<span>isset</span>(<span>$var</span>)); <span>// false</span></code>
  • isnull: 判断变量是否 为 null , 等价于 === null

注意

空值之间的==比较不一定返回 true :

<code><span>// 不具传递性</span><span>var_dump(<span>0</span> == <span>'0'</span>)</span>; <span>// true</span><span>var_dump(<span>''</span> == <span>0</span> )</span>; <span>// true</span><span>var_dump(<span>'0'</span> == <span>''</span>)</span>; <span>// false</span><span>var_dump(<span>0</span> == [])</span>; <span>// false</span></code>

最佳实践

  • 空值判断使用 empty 判断;
  • isset 无法判断存在但值为null的变量;
  • php ===== 差别在于后者同时进行类型相等判断

‘).addClass(‘pre-numbering’).hide(); $(this).addClass(‘has-numbering’).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('

  • ‘).text(i)); @本文来*源gaodai#ma#com搞*!代#%^码$网* }; $numbering.fadeIn(1700); }); }); </script>

    以上就介绍了php 相等性比较 以及 empty,isset, isnull,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


    搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:php 相等性比较 以及 empty,isset, isnull

    喜欢 (0)
    [搞代码]
    分享 (0)
  • 发表我的评论
    取消评论

    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址