Avatar billede webcreator Nybegynder
17. juli 2004 - 17:25 Der er 10 kommentarer og
1 løsning

Forskel på 2 ligmed-tegn og et. Store og Små bogstaver

Hej Eksperter.

Jeg har et par if-sætninger hvor jeg skriver :

if ($test1 == $test2)
if ($test1 = $test2)

Den førstnævnte tjekker på både store og små bogstaver, mens den nederste ikke er case sensitive.

Mit spørgsmål er nu, hvad man gør med :

if ($test1 != $test2)

Er man nødt til at bruge strtoupper ?
Er det i øvrigt korrekt med forskellen mellem et og to ='er ?
Avatar billede arne_v Ekspert
17. juli 2004 - 17:29 #1
!= forskellige fra (tror jeg - det er det ihvertfald i de fleste andre sprog)
Avatar billede arne_v Ekspert
17. juli 2004 - 17:29 #2
Hvis PHP er ligesom andre sprog, så betyder:

x == y test om x er lig med y

mens x = y betyder flyt værdien af y over i x
Avatar billede erikjacobsen Ekspert
17. juli 2004 - 17:30 #3
= er en tilordning, slet ikke en sammenligning. $test1 bliver sat til det
samme som $test2 og så bliver indholdet af ifsætningen udført (med mindre værdien
i $test2 var 'false').

Så, ja, du skal bruge strtoupper eller strtolower.
Avatar billede webcreator Nybegynder
17. juli 2004 - 17:31 #4
Ok, jeg siger tak. Smid svar, gutter :)
Avatar billede erikjacobsen Ekspert
17. juli 2004 - 17:32 #5
Nej tak, jeg samler ikke på point.
Avatar billede arne_v Ekspert
17. juli 2004 - 17:53 #6
Det gør jeg ...

:-)
Avatar billede webcreator Nybegynder
17. juli 2004 - 18:05 #7
;-)
Avatar billede squashguy Nybegynder
17. juli 2004 - 19:04 #8
skal vi ikke lige have === med også, den tager højde for typen af de variabler som indgår. For at den skal være sand, skal begge variabler være ens:

$v1 = 2;
$v2 = "2"; // to forskellige typer

if($v1 == $v2) echo "match ved ==<br>";

if(!($v1 === $v2)) echo "IKKE match ved ===";
Avatar billede webcreator Nybegynder
17. juli 2004 - 19:07 #9
Jo, det var da rart at du lige nævnte det også - mange tak skal du have.

Dvs. at v1 kan karakteriseres som en integer, mens v2 er en string?
Avatar billede squashguy Nybegynder
17. juli 2004 - 19:18 #10
korrekt. hvis du f.eks. sætter v2="2abc" vil se == stadig evaulerer til sand, da php automatisk laver første del af v2 til en integer inden den sammenligner.
Avatar billede webcreator Nybegynder
17. juli 2004 - 19:21 #11
Ok, I see. Jamen jeg siger tak for det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester