неожиданная ошибка T_BOOLEAN_AND в моем операторе if - PullRequest
1 голос
/ 29 декабря 2011

У меня есть следующее утверждение IF:

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";

Итак, я решил, что я сделаю еще один IF с AND, поэтому IF display = inline AND пользователь НЕ вошел в систему, установите $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

Такжепытался использовать AND вместо &&, но это дало тот же результат.Что я здесь не так делаю?

Ответы [ 3 ]

3 голосов
/ 29 декабря 2011
  • Ваш оператор присваивания (=) должен быть оператором сравнения (==)
  • Была ненужная скобка ())
  • Я также удалил некоторыененужные скобки вокруг второго условия
if ($style == "display: inline" && !$user) {
    $fb_login = "display: inline";
}
2 голосов
/ 29 декабря 2011

В этой строке отсутствует скобка

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. Мне не совсем понятно, чего вы пытаетесь достичь, и, возможно, есть гораздо более простой и понятный способ сделать это.

2 голосов
/ 29 декабря 2011

Вам не хватает (

if (($style == "display: inline") && (!$user)) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...