我有这个代码应该显示$scheme
中的所有<ul>
值。如下所示,我有2个$scheme
个变量,但只有1个显示在<ul>
中。
$scheme = colorscheme('Test', 'hello');
$scheme = colorscheme('Black', 'hello');
function colorscheme( $color, $url ) {
return array( $color, $url );
}
echo '<ul>';
foreach ($scheme as $value) {
echo '<li>' . $value . '</li>';
}
echo '</ul>';
我怎样才能使每个$scheme
显示而不是只显示1?
答案 0 :(得分:0)
如下所示,我有2个
$scheme
个变量,但<{1}}中仅显示 。
这是因为<ul>
变量被每个函数调用覆盖。见这里,
$scheme
我怎样才能使每个
$scheme = colorscheme('Test', 'hello'); // Here, $scheme = array('Test', 'hello'); $scheme = colorscheme('Black', 'hello'); // Here, $scheme = array('Black', 'hello');
显示而不是只显示1?
将$scheme
作为数组,并将返回的数组从$scheme
函数追加到此数组,如下所示:
colorscheme()
然后使用$scheme = array();
$scheme[] = colorscheme('Test', 'hello');
$scheme[] = colorscheme('Black', 'hello');
循环遍历此$scheme
数组以显示所有颜色方案。
foreach
答案 1 :(得分:0)
通过两次使用相同的变量名,您只需在第二行覆盖它。您需要为每个方案使用唯一的变量名称,或者将它们全部保存在一个数组中(这将是更好的选择)。
此外,您的功能没有任何意义,也是多余的。
简单来说,您可以将所有方案放入多维数组中,这是一个由子数组组成的数组。然后循环遍历主数组并检索每个子数组的两个元素,以便您可以回显它们。
$schemes = array(
array('White', 'scheme 1'),
array('Black', 'scheme 2'),
array('Green', 'scheme 3')
);
echo '<ul>';
foreach ($schemes as $scheme) {
$color = $scheme[0];
$url = $scheme[1];
echo "<li>$color = $url</li>";
}
echo '</ul>';