![](/img/trans.png)
[英]What is the wrong with “while($row = mysqli_fetch_assoc($result)){// }”?
[英]How $row =mysqli_fetch_assoc($result) ,is possible in php
我們知道我們不能在變量中存儲函數
<?php
$k = echo("hello");
?>
要么
$k = unset($_SESSION['name']);
他們都會給錯誤。 因為我們不能將函數直接存儲在變量中,而是如何使用。
$row = mysqli_fetch_assoc($result);
我知道mysqli_fetch_assoc()
函數輸出一個存儲在變量$row
的數組。 但是如何違反php的一般規則。 而且我們能夠將函數存儲在變量中
echo
和unset
並不是真正的功能。 如果查看文檔,您會看到它說:
返回值
沒有值返回
由於未返回任何值,因此無法將其分配給變量。
mysqli_fetch_assoc()
是一個普通函數。 與其他任何函數一樣,您可以將其返回值分配給變量,或將其作為參數傳遞給另一個函數,或在表達式中使用它。
如果無法將函數值分配給變量,則將很難用PHP進行編程。 你不能寫這樣的東西:
$max = max($var1, $var2);
$current_time = time();
我們知道我們不能將函數存儲在變量中
這是不正確的,但我稍后會再講。
您誤解了以下語法:
$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
這些類型的函數-沒有名稱的函數-稱為匿名函數或閉包。 見手冊
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.