$var == ложный не работа

У меня есть выражение как это, в котором покупательная сила $var ложная:

    if (! isset($var) || (isset($var) && $var == false)) {
          //This should be executed
    }
    else if (isset($var) && $var == true) {
          //This is executed
    }

Я хочу, чтобы первое выражение было выполнено. Что не так в вышеупомянутом коде? Пожалуйста, выручите меня

Продукция var_dump ($dump):

    string 'false' (length=5)
0
Что было назначено на $var?
добавлено автор Vivek Sadh, источник
@Bondye $var является ПОЛУЧИТЬ переменной http://stackoverflow.com/a/17268813/1057527
добавлено автор machineaddict, источник
что относительно этого kunststube.net/isset
добавлено автор M Khalid Junaid, источник
Почему вашей булевой , ложный , является последовательность ' false' ?
добавлено автор Ron van der Heijden, источник
$var ложный..
добавлено автор khushalbokadey, источник

8 ответы

Вы могли просто написать логику как указано ниже:

if (isset($var) && $var) {
  //Do other thing
} else {
  //Do something
}
2
добавлено
+1. Самый удобочитаемый из всех вариантов.
добавлено автор devnull, источник
@khushalbokadey Извините, но код никогда не лежат, показывают результат var_dump ($var)
добавлено автор xdazz, источник
Я попробовал, но если $var ложный тогда, он входит если блок.
добавлено автор khushalbokadey, источник
@xdazz: Отредактированный o/p в вопросе
добавлено автор khushalbokadey, источник
@xdazz:I got it. спасибо..:)
добавлено автор khushalbokadey, источник

Ваш ответили на вашу собственную проблему с var_dump ()

string 'false' (length=5)

Вы пытаетесь сравнить последовательность с булевым. Попробуйте:

$var === 'false'
2
добавлено

Я думаю это, что вы пытаетесь сделать с этим

if (! isset($var) || (isset($var) && $var == false))

is exactly the definition of the empty function (or it's negation in fact). See the man page here http://php.net/empty

1
добавлено

Ценность ложных поступает из получить запроса, и я должен был сделать как это:

    if (! isset($var) || ( isset($var) && $var == 'false' ))

Спасибо за ответы.

1
добавлено

Попробуйте как

if ( !isset($var) || ( isset($var) && !$var )) {
      //Do something
}
else if ( isset($var) && $var ) {
      //Do other thing
}

Or simply Попробуйте как

if ( !isset($var) || ( !$var )) {
0
добавлено
Я думаю, что isset возвратится ложный за $var = ложный
добавлено автор Gautam3164, источник
Посмотрите мой отредактированный ответ также...
добавлено автор Gautam3164, источник
все еще работа
добавлено автор khushalbokadey, источник

При использовании codeigniter и ценность , $var прибывает из получить запроса тогда, вы не должны печатать такое долгое выражение. Это будет также работать.

if( !$this->input->get('get_variable_name') ) {
//Do something
} else {
//Do other thing
}

isset вещь сделана самим codeigniter. Для получения дополнительной информации посетите ссылку ниже.

http://ellislab.com/codeigniter/user-guide/libraries/input.html

0
добавлено

Отметьте ответ @Nathan епископа.

if( empty($var) ) {
    //$var is false
} else {
   //$var exists and is true
}

Определите, считается ли переменная пустой. Переменную считают пустой, если она не существует или если ее стоимость равняется ЛОЖНЫЙ. пустой() не производит предупреждение, если переменная не существует. Источник PHP.net

если вы хотите игру с истинной из ложной стоимости в ваших вопросах URL, делают это с "1" для истинного и "0" для ложного

Следующие ценности считают ЛОЖНЫМИ:

  • само булево ЛОЖНОЕ
  • целое число 0 (нолей)
  • плавание 0.0 (ноля)
  • пустая строка и последовательность "0"
  • множество с нулевыми элементами
  • объект с нулевыми членскими переменными (только PHP 4)
  • специальный ПУСТОЙ УКАЗАТЕЛЬ типа (включая переменные сброса)
0
добавлено
if (! isset($var) || (isset($var) && $var == 'false')) {
           echo 'false';
    }
    else if ((isset($var)) && ($var == 'true')) {
           echo 'true';
    }

используйте этот код. если какая-либо стоимость будет назначена на переменную, то это будут считать верным в Булевы выражения. Именно поэтому второе условие выполняется.

0
добавлено
добавлено автор machineaddict, источник
@machineaddict я исправил свой ответ. ($var == ложный), оценит верный Только, когда $var будет пустой строкой или не набором.
добавлено автор Prem Shankar, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp