簡體   English   中英

php-如何將參數傳遞給函數

[英]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變量中

要解決的一些問題:

  1. template1應該是$template1
  2. 您應該傳遞$template1而不是"template1" (即變量本身而不是它的名稱)。
  3. 如果要修改此變量,則需要執行以下任一操作:
    • 將其作為引用傳遞,可以通過將函數的聲明更改為: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM