所以我在google上找到了这个SHORTHAND PHP方法:
if(isset($a))
{
$a = TRUE;
}
else
{
$a = FALSE;
}
可以在单行语句中转换为:
$a = isset($a) ? TRUE : FALSE;
这是正常工作,我有一个脚本,我无法应用 SHORT HAND 方法。
PHP:
<?php
$letters = ['1' => 'A', '2' => 'B', '3' => 'C'];
$data['LETTER'] = "";
foreach($letters as $id => $letter)
{
$data['LETTER'] .= "<option value=$id>".$letter."</option>";
}
$html = file_get_contents('test.html');
echo $html = str_replace(array_keys($data),array_values($data),$html);
?>
我最终使用了 SHORTHAND METHOD ,这根本无法使用
$data['LETTER'] = foreach($letters as $id => $letter) ? "<option value=$id>".$letter."</option>" : "";
有没有可能缩短上面的脚本?
答案 0 :(得分:3)
foreach
没有简写方法,但您可以使用array_map
来实现它:
$data['LETTER'] = implode(array_map(function($id, $letter){ return "<option value=$id>".$letter."</option>"; }, $letters));
答案 1 :(得分:1)
您可以使用下面的功能
function getOptions($letters){
$opt = "";
foreach($letters as $id => $letter){
$opt .= "<option value=$id>".$letter."</option>";
}
return $opt;
}
$letters = array('1' => 'A', '2' => 'B', '3' => 'C');
$data['LETTER'] = getOptions($letters);
以其他方式
foreach($letters as $id => $letter):
$data['LETTER'] .= "<option value=$id>".$letter."</option>";
endforeach;