加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 关于IF语句中变量状态的问题

发布时间:2020-12-13 21:42:45 所属栏目:PHP教程 来源:网络整理
导读:我是 PHP的初学者,一直在阅读’ PHP for the Web:Visual Quickstart Guide 4th Ed.’拉里·厄尔曼(Larry Ullman)对我在书中遇到的问题提出了疑问. 在每章的最后,他有几个问题需要审查,我被困在其中一个问题上,不确定我是否有正确的答案或正确的问题. 问题如
我是 PHP的初学者,一直在阅读’ PHP for the Web:Visual Quickstart Guide 4th Ed.’拉里·厄尔曼(Larry Ullman)对我在书中遇到的问题提出了疑问.

在每章的最后,他有几个问题需要审查,我被困在其中一个问题上,不确定我是否有正确的答案或正确的问题.

问题如下:

Without knowing anything about $var will the following conditional be TRUE or FALSE? Why?

if ($var = 'donut') {...

我很容易说它会是假的,因为我们不知道$var是否已在程序中分配了值donut但我不确定.

任何人都可以帮我解释一下,这样我就能掌握这个概念并对此充满信心吗?

解决方法

此条件将始终求值为TRUE,因为已分配值donut,然后将$var的值返回到if()语句.分配首先发生.

成功分配给变量会导致该变量立即返回.非空字符串是“truthy”值,并且如此返回.

相反,它被指定为:

if ($var = "") {}

根据PHP’s boolean evaluation rules,它将评估为FALSE:

var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)

附录

只是添加,作为流控制条件内的赋值的实际示例,您几乎每天都可以看到 – 我们通常用于从MySQL结果资源中检索行集的while()循环:

while ($row = mysql_fetch_assoc($result)) {
  // executes this inner block as long as $row doesn't 
  // recieve a FALSE assignment from mysql_fetch_assoc()
  // reaching the end of its rowset
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读