【问题标题】:check condition in if statement在 if 语句中检查条件
【发布时间】:2017-12-08 01:01:37
【问题描述】:

我是编程新手,所以请原谅我的愚蠢问题。我见过这样的代码:

$result1 = mysqli_query($connection,
 "INSERT INTO Categories (CategoryName) VALUES ('Philosophy')");

if ($result1) {
 /* commit transaction */
 mysqli_commit($connection);
}

我不太清楚 if ($result1) 是什么意思,通常我们在 if 语句中检查条件时,它应该是可以显式生成 true 或 false 的东西,所以语法应该是 if(true) 或 if( false),例如 if (1==1) 等价于 if(true),那么 if ($result1) 呢? $result1 本身不会产生真假

【问题讨论】:

  • 这就是类型转换发挥作用的地方。在这种情况下,PHP 使用 $result1 转换为布尔值 true 或 false 的结果。阅读php.net/manual/en/language.types.type-juggling.php
  • mysqli_query() 如果出现问题,则始终返回 false。如果查询成功,则返回不为假的结果。所以这个说法是正确的。

标签: php if-statement


【解决方案1】:

看看:

  1. PHP: Expressions
  2. PHP: if
  3. PHP: Type Juggling

文档中关于if 声明的摘录:

if (expr)
    statement

表达式 (expr) 被评估为其布尔值。如果表达式计算结果为TRUE,PHP 将执行语句,如果计算结果为FALSE - 它会忽略它。

再一次来自关于表达式的文档:

定义表达式的最简单但最准确的方法是“任何有价值的东西”

现在,$result1 是一个表达式,它有一个值。因此,表达式$result1 将被转换为布尔值,并将在if 语句中使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2021-09-29
    相关资源
    最近更新 更多