Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:if($result=someFunction())如何工作?_Php_Mysql_If Statement - Fatal编程技术网

PHP:if($result=someFunction())如何工作?

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 =

我正在学习如何在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 = 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语句也会是真的吗?对象是真的吗