[英]php - How to pass parameters to a function
我敢肯定,這對所有人來說都是一個非常基本的問題,但是我是php的新手,但我並沒有真正了解它...基本上,我已經創建了一個函數,需要在其中傳遞兩個參數。
我的功能是這樣的:
function displayRoomDetails($customerRooms, $test)
{
foreach ($customerRooms as $room) {
$test.= $room->name;
};
}
這是一個非常基本的功能,但將在此示例中進行。
現在,我正在創建模板以顯示多個信息,並且我有3種不同的布局,需要顯示相同的信息,但樣式不同,所以我的方法是:
template1 .= '<span>';
if (!$customerRooms == "") {
displayRoomDetails($customerRooms,"template1");
};
template1 .= '</span>';
它應該很容易理解,基本上我在所有不同的模板中調用相同的函數,將模板名稱作為參數傳遞,並嘗試將結果附加到正確的模板上。
我遇到的問題是:根據此處的示例-> http://www.w3schools.com/php/showphp.asp?filename=demo_function3
我應該能夠像我一樣完全做到這一點,但是當我嘗試調試函數時,$ template不會像我那樣接受傳遞的值,但它仍稱為$test
而不是$template1...
我究竟做錯了什么?
謝謝
嘗試以下更改:
function displayRoomDetails($customerRooms, &$test)
和
$template1 .= '<span>';
if ($customerRooms != "") {
displayRoomDetails($customerRooms, $template1);
};
$template1 .= '</span>';
據我了解,您想使用displayRoomDetailsFunction
將一些文本附加到template1
變量中
要解決的一些問題:
template1
應該是$template1
$template1
而不是"template1"
(即變量本身而不是它的名稱)。 function displayRoomDetails($customerRooms, &$test)
return $test;
將其分配給$template1
return $test;
就在您的foreach
塊之后,並將調用更改為$template1 .= displayRoomDetails($customerRooms,$template1);
補充說明:如果$customerRooms
是一個數組,則最好使用count()
來檢查它是否不為空,而不是!$customerRooms == ""
,有關詳細信息,請參見@andrew的注釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.