martins256 Posted April 9, 2006 Report Share Posted April 9, 2006 Kā var būt tā, ka es padodu mainīgo ar linka paliidziibu un kad saliidzinu šo mainīgo ar jebko, tas ir vienāds? <? $a = $_GET['a']; if ($a = 'asd') { echo "asd"; } ?> links: test.php rezultāts: Notice: Undefined index: a in C:\web\www\tests.php on line 2 un asd links: test.php?a=1 rezultāts: asd links: test.php?a=asd rezultāts: asd Šitāda laikam ir mana PHP versija: 05 Sep 2005, PHP 5.0.5 Link to comment Share on other sites More sharing options...
andrisp Posted April 9, 2006 Report Share Posted April 9, 2006 (edited) jābūt == nevis = Tavā gadijumā tu vienkārši piešķir $a mainīgajam vērtību 'asd'. Tā kā šī darbībā tiek izpildīta veiksmīgi, tad tiek atgriezts TRUE. Tādat echo "ASD"; izpildīsies jebkurā gadijumā. Edited April 9, 2006 by andrisp Link to comment Share on other sites More sharing options...
bubu Posted April 9, 2006 Report Share Posted April 9, 2006 Tā kā šī darbībā tiek izpildīta veiksmīgi, tad tiek atgriezts TRUE. Nepareizi. Nevis darbība tiek izpildīta veiksmīgi, bet gan operācijas rezultāts ("asd") tiek interpretēts kā booleans. Un jebkurš netukšs strings ir true, tāpēc arī izpildās tas ifs. Ja strings, ko piešķir, būtu tukšs, tad gan ifs nekad neizpildītos (jo ""==false). Link to comment Share on other sites More sharing options...
andrisp Posted April 9, 2006 Report Share Posted April 9, 2006 Ok, nepareizi biju iedomājies. Link to comment Share on other sites More sharing options...
lame Posted April 10, 2006 Report Share Posted April 10, 2006 $a = $_GET['a']; šī vietā ieteiktu lietot šo if(isset($_GET['a']))$a = $_GET['a']; else $a = ''; tad tev pazudīs tā pirmā Notice par nedefinēto indeksu a, ja tas nebūs padots caur linku. Link to comment Share on other sites More sharing options...
bubu Posted April 10, 2006 Report Share Posted April 10, 2006 Vai vēl labāk (tas pats, ko lame uzrakstīja, tikai īsāk): $a = isset($_GET['a']) ? $_GET['a'] : ''; Link to comment Share on other sites More sharing options...
Recommended Posts