如何使用php在控制器中连接此语法。 方法1:
echo "<option '". if($p_main_cat_id==$value['main_cat_id']){echo 'selected';}."' value='".$value['main_cat_id']."'>".$value['name']."</option>";
//错误是:意外,如果
方法2:
echo "<option '".<?php if($p_main_cat_id==$value['main_cat_id']){echo 'selected';} ?>."' value='".$value['main_cat_id']."'>".$value['name']."</option>";
错误是:
意外&#39;&lt;&#39;
这两个都给出了错误。请纠正它。 谢谢!
答案 0 :(得分:0)
您无法直接将字符串附加到if
条件。除非您使用Ternary Operator
你必须分成几行。像:
选项1
echo "<option selected='";
if( $p_main_cat_id==$value['main_cat_id'] ) echo 'selected';
echo "' value='" . $value['main_cat_id'] . "'>" . $value['name'] . "</option>";
选项2 三元运算符
echo "<option selected='" . ( $p_main_cat_id == $value['main_cat_id'] ? 'selected' : '' ) . "' value='".$value['main_cat_id']."'>".$value['name']."</option>";
选项3
或者您可以将值存储在变量上并附加它。
$isSelected = ""; //Init the variable with empty string.
if( $p_main_cat_id == $value['main_cat_id'] ) $isSelected = 'selected'; //Use the condition here, if true, assign selected' to the variable
//You can now append the variable here
echo "<option selected='" . $isSelected . "' value='" . $value['main_cat_id'] . "'>" . $value['name'] . "</option>";
答案 1 :(得分:0)
尝试三元运算符:
echo "<option ". $p_main_cat_id==$value['main_cat_id'] ? "selected": ""." value='".$value['main_cat_id']."'>".$value['name']."</option>";
方法2:
$selected = $p_main_cat_id==$value['main_cat_id'] ? "selected": "";
echo "<option ". $selected." value='".$value['main_cat_id']."'>".$value['name']."</option>";
答案 2 :(得分:0)
最可读的方法是预先设置变量,然后将它们插入双引号字符串中:
extract($value);
$selected = $main_cat_id == $p_main_cat_id ? "selected" : "";
echo "<option $selected value='$main_cat_id'>$name</option>";
答案 3 :(得分:0)
这是一个简单的干净方法:
$option = '<option value="' . $value['main_cat_id'] . '" ';
// This is called a ternary operator and it basicaly means :
// If $p_main_cat_id == $value['main_cat_id'] is true then return 'selected >'
// Else return '>'
$option .= ($p_main_cat_id == $value['main_cat_id']) ? 'selected >' : '>';
$option .= $value['name'] . '</option>';
echo $option;