我有一个为我提供HTML的功能。像这样:
function user_profile ($name, $age, $location){
return "<div class='myclass' style='color:red'>
<span class='title'>user's profile</span>
<ul>
<li>Name: $name</li>
<li>Age: $age</li>
<li>location: $location</li>
</ul>
</div>";
}
echo user_profile ($name, $age, $location);
上面的功能简化了我的实际功能。实际上,该函数有14个参数,HTML更长。
无论如何,我想知道我可以让它更干净吗?我的意思是,我可以创建所有参数的数组并将其传递给(数组)吗?在那种情况下,我如何将它用于函数?
同样,实际上我的代码要大得多,而上面的代码只是一个样本。
答案 0 :(得分:3)
答案是肯定的,您可以将数组作为参数传递。在您的代码中,它看起来像这样:
function user_profile ($array){
return "<div class='myclass' style='color:red'>
<span class='title'>user's profile</span>
<ul>
<li>Name: $array[0]</li>
<li>Age: $array[1]</li>
<li>location: $array[2]</li>
</ul>
</div>";
}
//variables in the following array are defined elsewhere in script - not revelant here
$array = array($name, $age, $location);
echo user_profile($array);
更有吸引力的方法是通过关联数组使用键值对:
function user_profile ($array){
return "<div class='myclass' style='color:red'>
<span class='title'>user's profile</span>
<ul>
<li>Name: " . $array['Name'] . "</li>
<li>Age: " . $array['Age'] . "</li>
<li>location: " . $array['Location'] . "</li>
</ul>
</div>";
}
//variables in the following array are defined elsewhere in script - not revelant here
$array = array('Name' => $name, 'Age' => $age, 'Location' => $location);
echo user_profile($array);
此方法使用关联数组,可以让您更轻松地将数组键与HTML列表项内容进行匹配。
答案 1 :(得分:0)
在我看来,将数组作为参数传递是The One and Only ChemistryBlob所说的唯一干净的方法。但是可以通过让它更具动态来改进,因为数组可以传递任意数量的信息。
function user_profile ($array){
$return ="<div class='myclass' style='color:red'>
<span class='title'>user's profile</span>
<ul>".PHP_EOL;
foreach($array as $key=> $value){
$return .="<li>".$key.": ".$value."</li>".PHP_EOL;
}
$return.="</ul>
</div>";
return $return;
}
$try =['Name' => $name,
'Age' => $age,
'Location' => $location];
echo user_profile($try);