簡體   English   中英

PHP如何將if語句放在echo塊內

[英]PHP how to put an if statement inside an echo block

我有以下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>標記之前
我不確定如何在回顯中添加if語句

別。

暫時忽略將您的HTML嵌入到echo語句中這樣的輸出是一種反模式(考慮使用模板引擎!),您將通過混合更多的邏輯和內容來使代碼真正難以閱讀,您將如果您在此處雇用條件運算符 *,則該操作

實際上,通常,如果輸出語句中除了基本的字符串插值以外,還沒有足夠的邏輯和內容。

在這里,它看起來像這樣:

$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++;
}

看到它有多混亂嗎? 如果使用條件運算符排長隊,那就更糟了

*不是“三元運算符”! “三元”是它的友善,而不是它的名字。

您必須使用三元運算符: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>";

消息來源: 如果在echo語句內阻塞?

您將需要使用一個三元運算符,該運算符用作縮短的IF / Else語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM