2017-04-22 87 views
0

不知道這是否是要問的地方。這裏是我的代碼,我的問題是代碼之後:每次使用變量時,PHP函數都會被調用嗎?

function test() { 
    $db->SELECT * FROM... etc... 

    $array = array("Car"=>$row['car'], "Boat"=>$row['boat'], "Plane"=>$row['plane']); 
    return $array; 
} 

$vehicles = test(); 

echo $vehicles['car']; // call 1 
echo $vehicles['boat']; // call 2 
echo $vehicles['plan']; // call 3 

,你可以看到,我叫$vehicles[]; 3倍。每次調用$vehicles時,是否需要返回test()函數並在每次調用時搜索數據庫?或者是否在頁面加載時將數組存儲在$vehicles變量中?謝謝。

+1

不,它不會調用該方法三次 – webDev

回答

1

函數被調用一次。調用$vehicles變量將從存儲的數組中提取內容,而不是函數。

所以test()函數只運行一次(在頁面加載時)。

+0

接受您的答案,因爲您先發布。 –

2

編號test()被執行一次,返回變量(這是一個數組)被分配給$vechicles

我創建了一個測試here,這說明此功能是如何工作的:

<?php 

function test() { 
    echo 'Test function called', "\n"; 

    $array = array("Car"=> 'Test car', "Boat"=> 'Test boat', "Plane"=> 'Test plane'); 
    return $array; 
} 

$vehicles = test(); 

echo $vehicles['Car'], "\n"; // call 1 
echo $vehicles['Boat'], "\n"; // call 2 
echo $vehicles['Plane'], "\n"; // call 3 

你會發現,「所謂的測試功能」只是呼應了一次(剛開始)。如果這個函數被多次調用,「測試函數調用」會被多次回顯。

+0

感謝您的示例,幫助了很多 –

+0

未來,您應該接受您認爲是解決您問題的最佳解決方案的答案(不是首先回復的答案)。看[某人的答案](// stackoverflow.com/help/someone-answers)。 – FrankerZ

相關問題