PHP:if($result=someFunction())如何工作?
我正在学习如何在PHP中使用MySQL,在学习如何在数据库中调用SQL查询时,我看到过程方法包含以下if语句:PHP:if($result=someFunction())如何工作?,php,mysql,if-statement,Php,Mysql,If Statement,我正在学习如何在PHP中使用MySQL,在学习如何在数据库中调用SQL查询时,我看到过程方法包含以下if语句: if($result = mysqli_query($link, $query)) 这份声明是怎么说的?我想它说的是: 1.将$result设置为等于mysqli\u查询($link,$query) 2.如果$result不为null(即mysqli\u查询方法返回了一些内容),则执行If块。 如果我的想法是正确的,那么在If块之外,$result是否可用?这与 $result =
if($result = mysqli_query($link, $query))
这份声明是怎么说的?我想它说的是:1.将
$result
设置为等于mysqli\u查询($link,$query)
2.如果
$result
不为null(即mysqli\u查询
方法返回了一些内容),则执行If块。如果我的想法是正确的,那么在If块之外,
$result
是否可用?这与
$result = mysqli_query($link, $query);
if ($result) { // If $result is truthy
// Stuff
}
本质上意味着“如果mysqli_查询的结果是真实的,那么就做些什么。如果失败了,就不要做,因为$result
将是虚假的。”
根据报告:
失败时返回FALSE
。对于成功的选择
,显示
,描述
或解释
查询mysqli\u query()
将返回一个mysqli\u结果
对象。对于其他成功的查询,mysqli\u query()
将返回TRUE
mysqli_结果
和TRUE
都是真实的,但是FALSE
显然不是。因此,如果查询正常,它只会进入if
块
是的,$result
将在if查询之外可用,就像上面的示例一样
:
这与
$result = mysqli_query($link, $query);
if ($result) { // If $result is truthy
// Stuff
}
本质上意味着“如果mysqli_查询的结果是真实的,那么就做些什么。如果失败了,就不要做,因为$result
将是虚假的。”
根据报告:
失败时返回FALSE
。对于成功的选择
,显示
,描述
或解释
查询mysqli\u query()
将返回一个mysqli\u结果
对象。对于其他成功的查询,mysqli\u query()
将返回TRUE
mysqli_结果
和TRUE
都是真实的,但是FALSE
显然不是。因此,如果查询正常,它只会进入if
块
是的,$result
将在if查询之外可用,就像上面的示例一样
:
赋值操作的结果是赋值
这意味着:=
是一个运算符,确切地说是赋值运算符。它的工作原理类似于a=b
,其中b
的值被分配给变量a
。与加法运算符返回数字的方式相同,例如1+2
返回3
,赋值操作也返回一个值。它返回的值是指定的值;在上述情况下,值为b
这就是为什么$a=$b=$c
有效的原因
这将mysqli\u查询($link,$query)
的结果分配给$result
,然后测试分配给它的相同值
$result
是否在if
块之外可用
是的,PHP没有块作用域,它只有函数作用域
赋值操作的结果是赋值
这意味着:=
是一个运算符,确切地说是赋值运算符。它的工作原理类似于a=b
,其中b
的值被分配给变量a
。与加法运算符返回数字的方式相同,例如1+2
返回3
,赋值操作也返回一个值。它返回的值是指定的值;在上述情况下,值为b
这就是为什么$a=$b=$c
有效的原因
这将mysqli\u查询($link,$query)
的结果分配给$result
,然后测试分配给它的相同值
$result
是否在if
块之外可用
是的,PHP没有块作用域,它只有函数作用域。mysqli\u query($link,$query)
失败时返回false
因此,通过执行if($result=mysqli\u query($link,$query))
您正在将mysqli_query
的返回值保存到$result
中,并检查$result
是否为false。
如果不为false,这意味着mysqli\u查询
没有失败,您可以在$result
中访问结果
if($result = mysqli_query($link, $query)) {
//success. YAY
}
else {
//failed.
}
mysqli\u查询($link,$query)
失败时返回false
因此,通过执行if($result=mysqli\u query($link,$query))
您正在将mysqli_query
的返回值保存到$result
中,并检查$result
是否为false。
如果不为false,这意味着mysqli\u查询
没有失败,您可以在$result
中访问结果
if($result = mysqli_query($link, $query)) {
//success. YAY
}
else {
//failed.
}
我想补充一点,mysqli\u query
在成功时返回一个资源(这是真实的)。我不确定这是否回答了他的问题。OP的问题似乎更多地是关于if
statement@true如果不是这样,你认为提问者的困惑是什么?我的查询是一个SELECT
查询,那么if语句也会是真的吗?对象默认为真吗?@StrongJoshua您的$result
将是一个mysqli\u result
对象。默认情况下,对象不是true
,但是它们是truthy
,这意味着如果将其转换为布尔值,它将获得值true
。下面是PHP类型和truthy值的示例。您应该查看与==的松散比较。资源和对象也是真实的。我想补充一点,mysqli\u query
在成功时返回一个资源(这是真实的)。我不确定这是否回答了他的问题。OP的问题似乎更多地是关于if
statement@true如果不是这样,你认为提问者的困惑是什么?我的查询是一个SELECT
查询,那么if语句也会是真的吗?对象是真的吗