PHP Echo错误或打字错误


PHP Echo bug or typo

所以我有这行:

echo '<option value="random" ' . 
      ($lol_settings->gallery_effect == "random") ? 'selected=selected' :
      false.'>Random</option>';

但在输出上,我得到了这样的东西:

<select>
   selected=selected
   <option value="foo">foo</option>
</select>

为什么我会得到这个?我的打字错误/错误在哪里?也许你们能看到?

谢谢。

您需要将三元表达式(整个内容)包含在括号中

echo '<option value="random" '.($lol_settings->gallery_effect == "random" ? 'selected=selected' : '').'>Random</option>';

或者用逗号分隔表达式(wich是echo的一个选项):

echo '<option value="random" ', 
     $lol_settings->gallery_effect == "random" ? 'selected=selected' : '', 
     '>Random</option>'
    ;

差异编码板

你的陈述目前的情况相当于:

$condition = '<option value="random" ' . ($lol_settings->gallery_effect == "random");
$t = 'selected=selected';
$f = false.'>Random</option>';
echo  $condition ? $t : $f;

可以是三元或单引号周围的大括号。。。。

试试这个

echo '<option value="random" '.($lol_settings->gallery_effect == "random" ? "selected=selected" : "false") .'>Random</option>';

您的主要问题是echo是一个构造,而不是一个正常函数。您不能在echo语句中使用三元运算符。

尝试

 $SelectedValue = ($lol_settings->gallery_effect == "random") ? 'selected=selected' : ' ';
 echo '<option value="random" ' . $SelectedValue .'>Random</option>';

您正在连接false'>Random</option>';

因此,它是位于?: "else"部分的字符串的一部分