我有這段代碼:
$exists = false;
foreach ($outsiderTests as $key => $outsiderTest) {
$textExists = null;
foreach ($tests as $test) {
if ($outsiderTest->getName() == $test->getName()) {
$exists = true;
$existingTest = $test;
break;
} else
$exists = false;
}
var_dump($existingTest, $test);
}
正如你所看到的,我想看看是否有一個等價于outsiderTestin$tests陣列。我以為我必須將現有的等價物保存$test在另一個變數上,因為它會在結束后消失foreach,但事實并非如此。
當我轉儲它們時,$existingTest和的值是相同的。$test這很酷,讓我能夠擺脫提到的$existingTest變數,但讓我想知道我是否理解 PHP 的回圈功能。
$test變數不只存在于 foreach 范圍內嗎?PHP 是否會臨時保存執行所經過的最后一個索引的值?
uj5u.com熱心網友回復:
PHP的變數范圍在這里解釋:https ://www.php.net/manual/en/language.variables.scope.php
實際上,您有 2 個作用域:
- 全球范圍
- 區域函式作用域
因此,回圈變數將可以在其范圍之外訪問,并將包含它擁有的最后一個值。這就是你得到這種行為的原因。
如果您有一個呼叫函式的回圈,那么您有多種選擇:
global用函式內部的關鍵字宣告外部變數。- 使用變數訪問全域
$GLOBALS變數。 - 使用語法將所需的全域變數傳遞給匿名函式。
use ()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/456877.html
上一篇:對于線性模型,有沒有辦法遍歷r中的列名(不是數字)?
下一篇:如何創建非阻塞回圈JS?
