PHP är kul... oftast. Just nu är det mindre kul... ;)
Jag har följande situation:
//utsnitt ur form
<input type="hidden" name="shyNewPost" value="newP" > <BR>
<input class="buttonG" type="submit" name="submitPost" value="Post it!" ><BR><BR>
//Hjälpfunktion - anv av de flesta av mina skript - ger bland
//annat true korrekt för wasChosen("X", "I want to comment!")
function wasChosen($name, $val) {
return (isSet($_POST["$name"]) && $_POST["$name"] == $val);
}
//Utdrag ur skriptet
echo ($_POST['shyPost'] == "1")." A<BR>";
echo ($_POST['Post'] == "Post News!")." B<BR>";
echo (strcmp($_POST['Post'], "Post News!"))." C<BR>";
if (!(wasChosen("shyPost", "1") && wasChosen("Post", "Post News!")))
exit("New: Something's odd...");
Ger utskriften:
1 A
B
1 C
New: Something's odd...
Enligt https://www.php.net (om jag har förstått det rätt) är skillnaden den att strcmp alltid funkar då den jämför strängarna/bit, medan == är OK så länge man inte riskerar en typkonvertering före jämförelsen?
-
Stämmer detta eller har jag fattat fel?
-
Om det stämmer: borde inte det innebära att == ibland ger true när det inte borde, men där strcmp korrekt ser att det är false? Hur i självaste... kan resultatet bli det omvända: att strcomp ger true när == är falskt???! :l
Dessutom använder sig praktiskt taget vartenda skript jag har av wasChosen som funkat hur bra som helst ända till nu! Även på strängar med mellanslag och annat udda i.
- Så varför spårar den ur just nu? Vad är tokigt?
Tacksam för hjälp att begripa...