我有以下if语句:
<?php if ( isset ( $prfx_stored_meta['wedding-user'] ) ) selected( $prfx_stored_meta['wedding-user'][0], 'select-one' ); ?>
我需要插入到这个echo语句中:
$users = get_users();
$i = 0;
// Array of WP_User objects.
foreach ( $users as $user ) {
echo "<option value='select-$i' >" . esc_html( $user->display_name ) . "</option>";
$i++;
}
在关闭<option>
标记之前
我不确定如何在echo
答案 0 :(得分:2)
<强>不强>
暂时忽略输出嵌入echo
语句中的HTML这样的反模式(考虑使用模板引擎!),您将通过混合逻辑和您的逻辑来使您的代码难以阅读内容甚至更多,如果你在这里使用条件运算符 *,你将会做的。
事实上,一般来说,如果输出语句中除了基本字符串插值之外还有其他内容,那么就不能将逻辑和内容分开。
在这里,它看起来像这样:
$users = get_users();
$i = 0;
// Array of WP_User objects.
foreach ( $users as $user ) {
echo "<option value='select-$i' ";
if (isset($prfx_stored_meta['wedding-user']))
echo selected($prfx_stored_meta['wedding-user'][0], 'select-one');
echo ">" . esc_html( $user->display_name ) . "</option>";
$i++;
}
看看它有多乱?使用条件运算符的长行将是甚至更糟!
*不是“三元运算符”! “三元”是它的本位,而不是它的名字。
答案 1 :(得分:1)
您必须使用三元运算符:www.php.net/ternary
试试这个:
echo "<option value='select-$i' >" . esc_html( $user->display_name ) . ((isset($prfx_stored_meta['wedding-user'])?selected( $prfx_stored_meta['wedding-user'][0], 'select-one'):'')."</option>";
答案 2 :(得分:0)
您将需要使用一个三元运算符作为缩短的IF / Else语句。