0
$stuff = "<tr><td>" . if (isset($_SERVER['HTTP_REFERER'])) $_SERVER['HTTP_REFERER'] . "</td>";

我收到此错误:Parse error: syntax error, unexpected T_IF in

对不起,我是新手。

4

4 回答 4

2

您不能if在变量定义中使用语句。改用三元运算符:

$stuff = "<tr><td>" . (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '' ) . "</td>";

或者,您可以这样做:

if (!isset($_SERVER['HTTP_REFERER'])) {
    $_SERVER['HTTP_REFERER'] = '';
}
$stuff = "<tr><td>" . $_SERVER['HTTP_REFERER'] . "</td>";

使用三元运算符可以将多行代码压缩为一行,但会牺牲一些可读性。在这种情况下,使用三元运算符是有意义的。请参阅此处的文档。

于 2013-08-11T19:37:27.117 回答
1

使用三元运算符:

$stuff = "<tr><td>" . (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "") . "</td>";
于 2013-08-11T19:36:28.370 回答
1

您正在寻找if 运营商。它看起来像这样: ,如果为真,a ? b : c则将产生,否则。bac

$stuff = "<tr><td>" . (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '') . "</td>";

如您所见,它可以与其他运算符内联使用。它通常也被称为“三元”运算符,但这与调用+“二元”运算符相同(?:恰好是唯一常用的三元运算符)。

于 2013-08-11T19:36:42.490 回答
1

这不是一个好的编码风格
使用这个:

$stuff = "<tr><td>";
if (isset($_SERVER['HTTP_REFERER']))
{
 $stuff .= $_SERVER['HTTP_REFERER'];
}
$stuff .= "</td>";
于 2013-08-11T19:39:18.583 回答