gpt4 book ai didi

php - 为什么这个 PHP 函数调用只工作一次?

转载 作者:行者123 更新时间:2023-12-02 06:11:34 24 4
gpt4 key购买 nike

我已经写了一个简单的数组,我会用它来打印一个带有选定元素的 html 列表选项集。如果我尝试在我的页面中打印多个列表,我的问题就开始了,因为只有第一个列表被正确打印,为什么?

<?php


$units = array (
'0' => 'Units',
'kJ' => 'Kilojoule: kJ',
'g' => 'Grams: g',
'mg' => 'Milligrams: mg',
'mcg' => 'Micrograms: mcg, µg');

function unit_select_option ($attributes, $code = "") {
global $units;
$html = "<select title=\"Kilojoule: kJ;&#13;Grammi: g;&#13;Milligrammi: mg;&#13;Microgrammi: mcg, µg;\" $attributes>\r";

while (list($key, $name) = each($units)) {
if ($key == "0") {
$html .= " <option title=\"$name\" value='$key'>$name</option>\r";
} else if ($key == $code) {
$html .= " <option title=\"$name\" selected=\"selected\" value='$key'>$key</option>\r";
} else {
$html .= " <option title=\"$name\" value='$key'>$key</option>\r";
}
}
$html.= "</select>\r";
return $html;
}

print unit_select_option ('class="units_select"', "g");
print unit_select_option ('class="units_select"', "mg");
print unit_select_option ('class="units_select"', "mcg");
?>

代码应该没什么奇怪的,但我还没有发现问题,因为页面没有返回任何错误。

html code:
<select title="Kilojoule: kJ;&#13;Grammi: g;&#13;Milligrammi: mg;&#13;Microgrammi: mcg, µg;" class="units_select">
<option title="Unit&agrave;" value='0'>Unit&agrave;</option>
<option title="Kilojoule: kJ" value='kJ'>kJ</option>
<option title="Grammi: g" selected="selected" value='g'>g</option>
<option title="Milligrammi: mg" value='mg'>mg</option>
<option title="Microgrammi: mcg, µg" value='mcg'>mcg</option>
</select>
<select title="Kilojoule: kJ;&#13;Grammi: g;&#13;Milligrammi: mg;&#13;Microgrammi: mcg, µg;" class="units_select">
</select>
<select title="Kilojoule: kJ;&#13;Grammi: g;&#13;Milligrammi: mg;&#13;Microgrammi: mcg, µg;" class="units_select">
</select>

最佳答案

each() 推进内部数组游标。因为 $units 是一个全局变量,所以您第一次调用 unit_select_option() 会将光标推进到 $units 的末尾,并保留在那里供后续调用使用。

您需要在 unit_select_option() 的末尾使用 reset($units); 倒回数组。

PHP 文档:reset

关于php - 为什么这个 PHP 函数调用只工作一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com