如何$ row = mysqli_fetch_assoc($ result),在php中是可能的

时间:2016-09-03 07:59:12

标签: php

我们知道我们不能将函数存储在变量

<?php
$k = echo("hello");
?>

$k = unset($_SESSION['name']);

他们都会给出错误。因为我们不能直接在变量中存储函数,而是我们如何使用。

$row = mysqli_fetch_assoc($result);

我知道mysqli_fetch_assoc()函数输出一个存储在变量$row中的数组。但是如何违反php的一般规则。我们能够将函数存储在变量

2 个答案:

答案 0 :(得分:4)

echounset不是真正的功能。如果您查看文档,您会看到它说:

  

返回值
  没有返回值

由于没有返回任何值,因此无法将它们分配给变量。

mysqli_fetch_assoc()是一个普通的函数。和任何其他函数一样,您可以将其返回值赋给变量,或者将其作为参数传递给另一个函数,或者在表达式中使用它。

如果无法为变量分配函数值,那么在PHP中编程会很困难。你写不出像:

$max = max($var1, $var2);
$current_time = time();

答案 1 :(得分:1)

  

我们知道我们不能将函数存储在变量

事实并非如此,但我稍后会再回过头来看。

您误解了以下语法:

$variable = functionName();

表示该函数存储在变量中。这意味着函数返回的值存储在变量中。

所以没有什么特别的:

$row = mysqli_fetch_assoc($result);

你应该也知道,正如我在开头所暗示的,我们实际上可以在变量中存储一个函数:

//store the function in variable $func
$func = function($a, $b){return $a + $b;}

//execute the function stored in variable $func
echo $func(2,8); //prints 10

这些类型的函数 - 没有名称的函数 - 称为匿名函数或闭包。 See the manual