$ var == false жұмыс істемейді

Менде $ 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 - айнымалы GET http://stackoverflow.com/a/17268813/1057527
қосылды автор machineaddict, көзі
бұл туралы kunststube.net/isset
қосылды автор M Khalid Junaid, көзі
Неге сіздің логикалық false - 'false' жолы?
қосылды автор Ron van der Heijden, көзі
$ var is false.
қосылды автор khushalbokadey, көзі

8 жауаптар

Логиканы төмендегідей жаза аласыз:

if (isset($var) && $var) {
  //Do other thing
} else {
  //Do something
}
2
қосылды
+1. Барлық нұсқалардың көпшілігі оқылады.
қосылды автор devnull, көзі
@hushalbokadey Кешіріңіз, бірақ код ешқашан өтірмейді, var_dump ($ var)
қосылды автор xdazz, көзі
Мен тырысамын, бірақ егер $ var - жалған болса, онда ол блокқа кіреді.
қосылды автор khushalbokadey, көзі
@xdazz: Сұрақ бойынша o/p-ды редакциялады
қосылды автор khushalbokadey, көзі
@xdazz: Мен оны алдым. Рахмет .. :)
қосылды автор 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 = false үшін қайтарады
қосылды автор Gautam3164, көзі
Менің редакцияланған анамды да қараңыз ...
қосылды автор Gautam3164, көзі
әлі жұмыс істемейді
қосылды автор khushalbokadey, көзі

Егер кодының кодын пайдалансаңыз және $ var мәні сұраныс сұрауынан келіп жатса, онда сіз осындай ұзын өрнекті терудің қажеті жоқ. Бұл да жұмыс істейді.

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

Эмитенттің өзі кодының өзі жасалады. Қосымша ақпарат алу үшін төмендегі сілтемеге өтіңіз.

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

0
қосылды

@Nathan Bishop жауапына назар аударыңыз.

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

Айнымалының бос екендігін анықтаңыз. Айнымалысы бос болмаса немесе оның мәні FALSE мәніне тең болса. empty() айнымалы болмаса, ескерту жасамайды.    Көздің PHP.net

егер сіз url сұрауларында жалған мәнмен ойнауды қаласаңыз, шынайы «1» және жалған «0» жасаңыз

Келесі мәндер FALSE деп саналады:

  • логикалық FALSE өзі
  • бүтін сан 0 (нөл)
  • float 0.0 (нөл)
  • бос жол және жол «0»
  • нөлдік элементтері бар массив
  • нөлдік айнымалы мәндері бар объект (тек PHP 4)
  • арнайы NULL түрі (айнымалы мәндерді қоса алғанда)
0
қосылды
if (! isset($var) || (isset($var) && $var == 'false')) {
           echo 'false';
    }
    else if ((isset($var)) && ($var == 'true')) {
           echo 'true';
    }

бұл кодты пайдаланыңыз. егер айнымалыға қандай да бір мән берілсе, ол логикалық өрнектерде дұрыс деп есептеледі. Сондықтан екінші шарт орындалады.

0
қосылды
@machineaddict Мен жауапымды түзеттім. ($ var == false) шындықты бағалайды Тек $ var бос жол болғанда немесе орнатылмаған жағдайда.
қосылды автор Prem Shankar, көзі