簡體   English   中英

如果語句中使用三元運算符

[英]if statment within an echo using ternary operators

我有以下回顯語句:

echo '<li><a href="'. esc_url(add_query_arg( 'booking-id', $the_query->post->ID, site_url( '/pay-deposit/' ) )) .'">Pay deposit</a></li>';

我想在參數= 1時將“禁用”類添加到鏈接中

這是我嘗試使用三元運算符的內容

    $is_deposit_paid = get_post_meta( $the_query->post->ID, 'deposit_paid', true );
    echo '<li><a '.( $is_deposit_paid = 1) ? "disabled" .' href="'. esc_url(add_query_arg( 'booking-id', $the_query->post->ID, site_url( '/pay-deposit/' ) )) .'">Pay deposit</a></li>';

但是,這會產生語法錯誤。 如何正確寫出?

有三個問題要解決:

  • 三元運算符需要... 3個參數(驚奇!),因此在第二個參數之后,需要在else情況下添加:和所需的字符串。

  • 在將點運算符應用於構建字符串之前,應將整個三元表達式放在方括號(而不是條件)中。

  • 您需要比較而不是分配( ==而不是=

所以這樣做:

$is_deposit_paid = get_post_meta( $the_query->post->ID, 'deposit_paid', true );
echo '<li><a '.( $is_deposit_paid == 1  ? "disabled" : "") . 
    ' href="'. esc_url(add_query_arg( 'booking-id', $the_query->post->ID, 
        site_url( '/pay-deposit/' ) )) . 
    '">Pay deposit</a></li>';

只需在函數調用后立即使用一個變量,而該類為“禁用”或什么都沒有(“”):

$is_deposit_paid = get_post_meta( $the_query->post->ID, 'deposit_paid', true );
$class = ($is_deposit_paid)?"disabled":"";
echo "<li><a $class href='". esc_url(add_query_arg( 'booking-id', $the_query->post->ID, site_url( '/pay-deposit/' ) )) ."'>Pay deposit</a></li>";

如果只需要類,甚至可以立即檢查函數調用:

$class = (get_post_meta( $the_query->post->ID, 'deposit_paid', true ))?"disabled":"";

暫無
暫無

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

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