选项A)
<?php
function registerTemplateA() {
foreach($GLOBALS as $potentialKey => $potentialValue) {
$valueArgs = func_get_args();
if (in_array($potentialValue, $valueArgs)) {
$args[$potentialKey] = $potentialValue;
}
}
print_r($args);
}
registerTemplateA($name = "my template", $screenshot = "screenshot.png", $description = "nice template");
?>
Option B) 选项B
<?php
function registerTemplateB() {
for ($i = 0; $i < func_num_args(); $i++) {
if ($i % 2 != 0) {
$key = func_get_arg($i - 1);
$value = func_get_arg($i);
$args[$key] = $value;
}
}
print_r($args);
}
registerTemplateB('name', 'my template', 'screenshot', 'screenshot.png', 'description', 'nice template');
?>
选项 C)
<?php
function registerTemplateC($args) {
print_r($args);
}
registerTemplateC(array('name' => 'my template', 'screenshot' => 'screenshot.png', 'description' => 'nice template'));
?>
结论:对于“最少代码”选项C是最好的。
(注意:这个答案是有效的PHP代码,有正确的开放和关闭标签,在PHP 5.2.x进行了测试,并且应该也可以在PHP 4上运行...所以如果您必须尝试一下。)