Tässä jonkin verran koodinpätkiä tutkineena tuli vastaan tämmöinen asia, johon en löydä vastausta. Isset()-funktiollahan tutkitaan, onko muuttujalla arvo, eli vaikka näin: if(isset($muuttuja)) { ... }
Mutta entäpä tämä if(!$muuttuja) { ... } TAI if($muuttuja) { ... } ?
Suurimmassa osassa tapauksista nämä toimivat kutakuinkin samalla tavalla. Tahtoisin kuitenkin tietää onko noilla kahdella tavalla tarkistaa muuttuja jotain eroa. Tietänettehän, että noinkin pienillä asioilla saattaa olla merkittävä osuus siihen, toimiiko ohjelma, vai ei.
if (!$muuttuja) ...
Jos muuttuja on epätosi
if ($muuttuja) ...
Jos muuttuja on tosi
On monta tapaa tutkia muuttujan arvoa:
isset($testi)
!empty($testi)
$testi
$testi <> ""
Näiden vastakohdat ovat:
!isset($testi)
empty($testi)
!$testi
$testi == ""
Minä käytän yleensä kahta viimeistä tapaa, mutta kaikki toimivat yhtä hyvin.
Paitsi isset()-funktio ei tutki muuttujan arvoa, vaan onko sen nimistä muuttujaa asetettu.
Kokeile kaikkia tapoja erilaisilla arvoilla (0, 1, "moi", ""), niin selviää.
Aihe on jo aika vanha, joten et voi enää vastata siihen.