Toms Posted August 1, 2008 Report Share Posted August 1, 2008 (edited) Lietojot switch nav vajadzības pārbaudīt pret ļaunām vērtībām, jo viss sliktais aizies uz default. Šeit es darītu šādi (IMHO vieglāk lasāms kods) $_GET['tips'] = (isset($_GET['tips']) ? $_GET['tips'] : 0); switch($_GET['tips']){ case 1: $msg='Tu pirmā tipa lietotājs'; break; case 2: $msg='Tu esi otrais tips'; break; default: $msg='Tu esi, kaut kas netipisks. Man bail!'; } Edited August 1, 2008 by Toms Link to comment Share on other sites More sharing options...
bubu Posted August 1, 2008 Report Share Posted August 1, 2008 Es gan to darītu šādi: $users = array( 1 => 'Tu pirmā tipa lietotājs', 2 => 'Tu esi otrais tips', ); $tips = (isset($_GET['tips']) ? (int)$_GET['tips'] : $defaultaa_veertiiba); if (array_key_exists($tips, $users)) { $msg = $users[$tips]; } else { $msg = "Tu esi, kaut kas netipisks. Man bail!"; } ; Mazāk jāraksta kods, lai pievienotu jaunu vērtību (tipa tas case X, break). Link to comment Share on other sites More sharing options...
andrisp Posted August 1, 2008 Report Share Posted August 1, 2008 hmm, bubu, ir kāds iemesls kāpēc array_key_exists nevis vienkārši isset ? Link to comment Share on other sites More sharing options...
Toms Posted August 1, 2008 Report Share Posted August 1, 2008 andrisp, domāju, ka tāpēc isset() does not return TRUE for array keys that correspond to a NULL value, while array_key_exists() does. Link to comment Share on other sites More sharing options...
andrisp Posted August 1, 2008 Report Share Posted August 1, 2008 Nu labi - tad kāpēc ne empty() ? :) Link to comment Share on other sites More sharing options...
Toms Posted August 1, 2008 Report Share Posted August 1, 2008 Arī centīšos atbildēt, lai mani palabo bubu, ja kaut ko ne tā izprotu. empty() Return Values Returns FALSE if var has a non-empty and non-zero value. The following things are considered to be empty: * "" (an empty string) * 0 (0 as an integer) * "0" (0 as a string) * NULL * FALSE * array() (an empty array) * var $var; (a variable declared, but without a value in a class) Link to comment Share on other sites More sharing options...
andrisp Posted August 1, 2008 Report Share Posted August 1, 2008 Toms, nu vai tad tas nav tieši tas, kas vajadzīgs ? Ja jau mums neder statusi ar NULL, tad jau visticamāk ar "", 0, False utt arī nederēs. Link to comment Share on other sites More sharing options...
v3rb0 Posted August 1, 2008 Report Share Posted August 1, 2008 vienu lietu var pierakstīt divos veidos! kā nu būt, ko nu darīt!!1 (: Link to comment Share on other sites More sharing options...
andrisp Posted August 1, 2008 Report Share Posted August 1, 2008 :] Link to comment Share on other sites More sharing options...
Toms Posted August 1, 2008 Report Share Posted August 1, 2008 Dažreiz 0 (nulle) var būt pilnīgi valīda vērtība, kas ar empty() paies garām.. Link to comment Share on other sites More sharing options...
andrisp Posted August 1, 2008 Report Share Posted August 1, 2008 Un NULL nevar būt kādreiz valīda vērtība ? :> Link to comment Share on other sites More sharing options...
Toms Posted August 1, 2008 Report Share Posted August 1, 2008 Liekas, ka bubu ir pieradis pārbaudīt masīvus ar array_key_exists(), tāpēc tā. Konkrētajā gadījumā NULL nebūtu traucēklis.. Link to comment Share on other sites More sharing options...
andrisp Posted August 1, 2008 Report Share Posted August 1, 2008 Toms, nu tak neņem tik nopietni. Es tikai iedomājos, ka varbūt ir kāds svarīgs iemesls kapēc bubu to izmanto. Tāpēc arī pajautājumu. Protams, ka pats katrs izmanto to, ko grib (protams, ja strādā:). Link to comment Share on other sites More sharing options...
Toms Posted August 1, 2008 Report Share Posted August 1, 2008 Neņemu TIK nopietni :D Man patīk padiskutēt, lai izkristalizējas :) Link to comment Share on other sites More sharing options...
bubu Posted August 1, 2008 Report Share Posted August 1, 2008 hmm, bubu, ir kāds iemesls kāpēc array_key_exists nevis vienkārši isset ? Tāpēc, ka man nepatīk nedefinētas vērtības. Un tāpēc, ka manas ikdienas darbs norit ar programmēšānas valodām, kurās nevar lietot nedefinētus mainīgos, tāpēc esmu pieradis lietot normālas funkcijas/metodes pārbaudēm, nevis valodas hakus/īpatnības. Manā uztverē ir tikai normāli paskatīties vai kautkas tur tiešām eksistē pirms to lietot (ar vai bez isset'a). isset izskatās pēc kautkā tāda, ka it kā mēģinat izvilkt no masīva elementu - un ai, ja nu nesanāca, tad atgriezīsim false, nevis true. Pats tais retās reizēs, kad sanāk programmēt php, arī GET/POST atslēgas čekoju ar key_exists nevis isset. Bet nu kaut ko tādu sākt te rakstīt... tikai vairāk jautājumus pretī dabūšu. Link to comment Share on other sites More sharing options...
Recommended Posts