我的if语句中出现意外的T_BOOLEAN_AND错误
I have the following IF statement:
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";
}
This works great. Now I wanted to show a Facebook login screen when $style = "display:inline";
So I figured, I make another IF with an AND, so IF display = inline AND user is NOT logged in, set $fb_login = "display: inline";
I've cooked up this code:
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";
}
Problem is I get an error with this: Parse error: syntax error, unexpected T_BOOLEAN_AND
Also tried to use AND instead of && but it gave the same result. What am I doing wrong here?
我有以下IF语句: p>
if(strpos) ($ _SERVER ['REQUEST_URI'],'/ dev / mahjong / mahjong.php')=== strlen($ _ SERVER ['REQUEST_URI']) - strlen('/ dev / mahjong / mahjong.php')){\ n $ style =“display:inline”;
}
else {
$ style =“display:none”;
}
code> pre>
这很有用 。 现在我想在 $ style =“display:inline”; code> p>
时显示一个Facebook登录界面所以我想,我用AND制作另一个IF,所以 IF display = inline AND user未登录,设置 $ fb_login =“display:inline”; code> p>
我已经编写了这段代码: p >
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”;
}
code> pre>
问题是我收到错误:解析错误: strong>语法错误,意外T_BOOLEAN_AND p>
还尝试使用AND代替&& ; 但它给出了相同的结果。 我在这里做错了什么? p>
div>
- Your assignment operator (
=
) should be a comparison operator (==
) - There was an unneeded parenthesis (
)
) - I also removed some unnecessary brackets around the 2nd condition
if ($style == "display: inline" && !$user) {
$fb_login = "display: inline";
}
You are missing a (
if (($style == "display: inline") && (!$user)) {
You're missing a bracket on this line
if ($style = "display: inline") && (!$user)) {
It should be
if (($style == "display: inline") && (!$user)) {
But you should ask yourself if you should approach this a different way. The code you've got is very specific to the output and you might be better for maintainability reasons doing your logic first then your display. Something like this:
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;
}
Also, you might want to review your initial IF statement. It's not entirely clear to me what you're trying to achieve and there may be a much simpler, more-readable way to do it.