我有以下 PHP 函数:
public function createOptions($options, $cfg=array()) {
$cfg['methodKey'] = isset($cfg['methodKey']) ? $cfg['methodKey'] : 'getId';
$cfg['methodValue'] = isset($cfg['methodValue']) ? $cfg['methodValue'] : 'getName';
$cfg['beforeKey'] = isset($cfg['beforeKey']) ? $cfg['beforeKey'] : '';
$cfg['beforeValue'] = isset($cfg['beforeValue']) ? $cfg['beforeValue'] : '';
$cfg['afterKey'] = isset($cfg['afterKey']) ? $cfg['afterKey'] : '';
$cfg['afterValue'] = isset($cfg['afterValue']) ? $cfg['afterValue'] : '';
$array = array();
foreach ($options as $obj) {
$array[$cfg['beforeKey'] . $obj->$cfg['methodKey']() . $cfg['afterKey']] = $cfg['beforeValue'] . $obj->$cfg['methodValue']() . $cfg['afterValue'];
}
return $array;
}
这是我在我的应用程序中用来从数组数据创建选择框的东西。我最近刚刚添加了 4 个新的 $cfg 变量,用于在选择框的键和值之前或之后添加字符串。例如,如果我的下拉列表默认看起来像“A、B、C”,我可以通过:
$cfg['beforeValue'] = 'Select ';
$cfg['afterValue'] = ' now!';
并获得“立即选择 A!,立即选择 B!,立即选择 C!”
所以这很好用,但我想知道 PHP 中是否有某种方法可以用一行而不是两行来实现这一点。我认为必须有一种特殊的方法来做到这一点。