[英]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.