ЕСЛИ состояние с или не работает в php - PullRequest
0 голосов
/ 05 февраля 2019

Я использую оператор if в php.То, что я хочу, - если пользователь не вводит идентификатор входа или usernamd + пароль, а затем показать сообщение об ошибке - но не работает, Вот мой код -

if($add_data['social_id']!="" || $add_data['username'] && $add_data['password']=="")
    {
        //login with social id code here
    }
elseif($add_data['username'] && $add_data['password']!="" || $add_data['social_id']=="")
    {
        //login with usernamd and password code here
    }
else
    {
        //please enter social id or username with password
    }   

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

вам нужно добавить выражение / значение после каждого атрибута в операторе if:

 if($add_data['social_id']!="" || $add_data['username'] != "" && $add_data['password']=="")
        {
            //login with social id code here
        }
    // add beside $add_data any expression
    elseif($add_data['username'] != ""  && $add_data['password']!="" || $add_data['social_id']=="")
        {
            //login with usernamd and password code here
        }
    else
        {
            //please enter social id or username with password
        }   

Во-вторых, я не понял, какое условие вы пытаетесь поставить туда ??если идентификатор социальной сети не равен нулю, а имя пользователя или пароль не равны ??или все должны быть введены.

Пожалуйста, поделитесь этим, чтобы я мог выслать вам точный код.

0 голосов
/ 05 февраля 2019

Использование !="" может вернуть true, если переменная не была установлена, то есть null != "".Вы можете преодолеть это с помощью empty()

if(!empty($add_data['social_id']))
{
    //login with social id code here
}
elseif(!empty($add_data['username']) && !empty($add_data['password']))
{
    //login with username and password code here
}
else
{
    //please enter social id or username with password
}
0 голосов
/ 05 февраля 2019

$add_data['username'] && $add_data['password'] == "" не делает то, что вы ожидаете.Вы не можете факторизовать условие таким образом.

Скорее, используйте $add_data['username'] == "" && $add_data['password'] == ""

Для большей наглядности сделайте то же самое для $add_data['username'] && $add_data['password'] != "", который будет заменен на $add_data['username'] != "" && $add_data['password'] != "" (но это условиебудет работать как положено, см. ниже)

Выполнение if ($var && $var2 == "") проверит, не является ли $var ложным и если $var2 равно ""

Не ложь (иначе истина) - это нечто отличается от:

  • само логическое значение FALSE
  • целое число 0 (ноль)
  • число с плавающей точкой 0.0 (ноль)
  • пустая строка, а строка "0"
  • массив с нулевыми элементами
  • специальный тип NULL (включая unsetпеременные)
  • Объекты SimpleXML, созданные из пустых тегов

Любое другое значение считается true

Источник: Официальный документ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...