串联中的三元运算符用于动态显示
尝试在串联中使用 if 语句(如下例所示)可能是徒劳的:
$display = '<a href="' . $row['info'] . '" onMouseOver="' . if($row['type']=="battle"){ . 'showB' . } else { . 'showA'() . "><div class='" . $row['type'] . "_alert" . '" style="float:left; margin-left:-22px;" id="' . $given_id . '"></div></a>';
解决方案:利用三元运算符
if 语句作为独立语句,使其不适合在字符串内插值。相反,三元运算符更适合此目的。它采用以下形式:
(conditional expression)?(output if true):(output if false);
串联内的实现
要在串联中有效地合并三元运算符,请考虑以下示例:
$i = 1; $result = 'The given number is'.($i > 1 ? 'greater than one': 'less than one').'. So this is how we can use ternary inside concatenation of strings';
嵌套三元运算符
对于更复杂的条件评估,可以使用嵌套三元运算符,如下所示:
$i = 0 ; $j = 1 ; $k = 2 ; $result = 'Greater One is'. $i > $j ? ( $i > $k ? 'i' : 'k' ) : ( $j > $k ? 'j' :'k' ).'.';
以上是如何使用三元运算符在字符串连接中动态显示?的详细内容。更多信息请关注PHP中文网其他相关文章!