我有以下如果声明:
if (strpos($_SERVER['REQUEST_URI'], '/dev/mahjong/mahjong.php') === strlen($_SERVER['REQUEST_URI']) - strlen('/dev/mahjong/mahjong.php') ) {
$style = "display: inline";
}
else {
$style = "display: none";
}这个很好用。现在我想显示一个Facebook登录屏幕当$style = "display:inline";
所以我想,我用AND做了另一个IF,所以如果display = inline没有登录,设置$fb_login = "display: inline";
我已经编出了这个代码:
if (strpos($_SERVER['REQUEST_URI'], '/dev/mahjong/mahjong.php') === strlen($_SERVER['REQUEST_URI']) - strlen('/dev/mahjong/mahjong.php') ) {
$style = "display: inline";
}
else {
$style = "display: none";
}
if ($style = "display: inline") && (!$user)) {
$fb_login = "display: inline";
}
else {
$fb_login = "display: none";
}问题是我得到了这样一个错误:解析错误:语法错误,意外的T_BOOLEAN_AND
也尝试使用,而不是&但是它给出了同样的结果。我在这里做错什么了?
发布于 2011-12-29 13:30:24
您的赋值运算符( (==)
))
))
周围的一些不必要的括号。
if ($style == "display: inline" && !$user) {
$fb_login = "display: inline";
}发布于 2011-12-29 13:31:18
你错过了一个(
if (($style == "display: inline") && (!$user)) {发布于 2011-12-29 13:35:45
你在这一行上少了一个括号
if ($style = "display: inline") && (!$user)) {它应该是
if (($style == "display: inline") && (!$user)) {但你应该问问自己,你是否应该用不同的方式来处理这个问题。您所得到的代码非常特定于输出,出于可维护性的原因,您最好先执行逻辑操作,然后再进行显示。就像这样:
if (strpos($_SERVER['REQUEST_URI'], '/dev/mahjong/mahjong.php') === strlen($_SERVER['REQUEST_URI']) - strlen('/dev/mahjong/mahjong.php') ) {
$mahjongRequest = true;
}
else {
$mahjongRequest = false;
}
if ($mahjongRequest && (!$user)) {
$fb_login = true;
}
else {
$fb_login = false;
}另外,您可能需要检查初始的IF语句。我不太清楚你想要实现什么,也许有一种更简单、更易读的方法。
https://stackoverflow.com/questions/8668461
复制相似问题