我很确定这对你们所有人来说都是一个非常基本的问题,但我是一个非常新的PHP,我真的不明白...... 基本上我已经创建了一个函数,我需要传递两个参数。
我的职能是:
function displayRoomDetails($customerRooms, $test)
{
foreach ($customerRooms as $room) {
$test.= $room->name;
};
}
这是一个非常基本的功能,但是会为这个例子做。
现在,我正在创建模板以显示多个信息,我有3个不同的布局,我需要显示相同的信息但风格不同,所以我的方法是:
template1 .= '<span>';
if (!$customerRooms == "") {
displayRoomDetails($customerRooms,"template1");
};
template1 .= '</span>';
它应该很容易理解,基本上我在所有不同的模板中调用相同的函数作为参数传递模板名称并尝试将结果附加到正确的模板。
我遇到的问题是: 根据这个例子,这里 - &gt; http://www.w3schools.com/php/showphp.asp?filename=demo_function3
我应该能够像我一样完成这项工作,但是当我尝试时,当我调试我的函数时,$ template并不会像我那样接受传递的值,但它仍然被称为{{ 1}}而不是$test
我做错了什么?
由于
答案 0 :(得分:2)
尝试以下更改:
function displayRoomDetails($customerRooms, &$test)
和
$template1 .= '<span>';
if ($customerRooms != "") {
displayRoomDetails($customerRooms, $template1);
};
$template1 .= '</span>';
答案 1 :(得分:1)
根据我的理解,您希望使用template1
displayRoomDetailsFunction
变量
要解决的一些问题:
template1
应为$template1
$template1
而不是"template1"
(即变量本身而不是其名称)。function displayRoomDetails($customerRooms, &$test)
$template1
阻止后添加return $test;
并将呼叫更改为foreach
$template1 .= displayRoomDetails($customerRooms,$template1);
附加说明:如果$customerRooms
是一个数组,最好使用count()
检查它是否为空,而不是!$customerRooms == ""
,有关详细信息,请参阅@ andrew的评论