条件字符串和变量串联

时间:2018-03-12 13:25:12

标签: php

如何使用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;

这两个都给出了错误。请纠正它。 谢谢!

4 个答案:

答案 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;