/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Variabler
Fra : Dennis Hansen


Dato : 24-09-02 18:55

Hej,

$b = 0;
$c = "to";
if($b == $c)
echo "$b er lig $c";

Den mener de er ens.
Hvorfor er det lige det er sådan ?

Mvh
Dennis






 
 
Mark S. Rasmussen (24-09-2002)
Kommentar
Fra : Mark S. Rasmussen


Dato : 24-09-02 21:26

> Hej,
>
> $b = 0;
> $c = "to";
> if($b == $c)
> echo "$b er lig $c";
>
> Den mener de er ens.
> Hvorfor er det lige det er sådan ?

Er den korrekte syntaks ikke:

$b = 0;
$c = "to";
if($b == $c) {echo "$b er lig $c"}

Jeg er ASP nørd, så jeg kender ikke PHP ordentligt, men det er et
bud.

Mvh Mark

---
Postet via www.improve.dk


Martin Møller Bæk (24-09-2002)
Kommentar
Fra : Martin Møller Bæk


Dato : 24-09-02 21:39

Mark S. Rasmussen wrote:
>>Hej,
>>
>>$b = 0;
>>$c = "to";
>> if($b == $c)
>> echo "$b er lig $c";
>>
>>Den mener de er ens.
>>Hvorfor er det lige det er sådan ?

Det skyldes at du sammenligner et tal
med en tekststreng. Derved vil strengen
blive konverteret til et tal. Men da
strengen ikke starter med et tal, vil
det blive konverteret til 0. Og da $b
også er nul, er de ens.

> Er den korrekte syntaks ikke:
>
> $b = 0;
> $c = "to";
> if($b == $c) {echo "$b er lig $c"}

Ikke nødvendigvis.
Jeg ved ikke, om man har defineret en
syntaks, der er den _rigtige_ i PHP.
Jeg ville selv skrive:

$b = 0;
$c = "to";
if($b == $c)
print("$b er lig $c");


Dennis Hansen (24-09-2002)
Kommentar
Fra : Dennis Hansen


Dato : 24-09-02 21:52

Martin Møller Bæk wrote:


>>>Den mener de er ens.
>>>Hvorfor er det lige det er sådan ?
>
> Det skyldes at du sammenligner et tal
> med en tekststreng. Derved vil strengen
> blive konverteret til et tal. Men da
> strengen ikke starter med et tal, vil
> det blive konverteret til 0. Og da $b
> også er nul, er de ens.

Aha, ja nu står det helt klart, tak.
Mvh
Dennis


Mads Lie Jensen (24-09-2002)
Kommentar
Fra : Mads Lie Jensen


Dato : 24-09-02 21:53

On Tue, 24 Sep 2002 22:38:43 +0200, Martin Møller Bæk
<martin@nospam.aflame.dk> wrote:

>>>$b = 0;
>>>$c = "to";
>>> if($b == $c)
>>> echo "$b er lig $c";
>>>
>>>Den mener de er ens.
>>>Hvorfor er det lige det er sådan ?
>
>Det skyldes at du sammenligner et tal
>med en tekststreng. Derved vil strengen
>blive konverteret til et tal. Men da
>strengen ikke starter med et tal, vil
>det blive konverteret til 0. Og da $b
>også er nul, er de ens.

...og så kan man bruge === (tre lighedstegn i rap) så skal det som
sammenlignes også være ens, dvs. begge være strenge, begge være tal osv.

>> Er den korrekte syntaks ikke:
>>
>> $b = 0;
>> $c = "to";
>> if($b == $c) {echo "$b er lig $c"}
>
>Ikke nødvendigvis.
>Jeg ved ikke, om man har defineret en
>syntaks, der er den _rigtige_ i PHP.
>Jeg ville selv skrive:
>
>$b = 0;
>$c = "to";
>if($b == $c)
> print("$b er lig $c");

Jeg foretrækker altid at sætte klammerne på, også selv om der kun er en
enkelt linie.
Men smag og behag

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
- nu med link til egne billeder fra Aero-koncerten
med Jean Michel Jarre

Martin Møller Bæk (24-09-2002)
Kommentar
Fra : Martin Møller Bæk


Dato : 24-09-02 21:57

> Jeg foretrækker altid at sætte klammerne på, også selv om der kun er en
> enkelt linie.
> Men smag og behag
Lige min pointe. Brug det man foretrækker,
(eller det ens chef siger man skal)

/Martin



Dennis Hansen (24-09-2002)
Kommentar
Fra : Dennis Hansen


Dato : 24-09-02 21:58

Mads Lie Jensen wrote:

>>Det skyldes at du sammenligner et tal
>>med en tekststreng. Derved vil strengen
>>blive konverteret til et tal. Men da
>>strengen ikke starter med et tal, vil
>>det blive konverteret til 0. Og da $b
>>også er nul, er de ens.
>
> ..og så kan man bruge === (tre lighedstegn i rap) så skal det som
> sammenlignes også være ens, dvs. begge være strenge, begge være tal osv.

Fedt, jeg har altid undret mig lidt over hvad 3 i rap af dem betød.



Jakob Møbjerg Nielse~ (24-09-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 24-09-02 23:49

Dennis Hansen wrote:
> Fedt, jeg har altid undret mig lidt over hvad 3 i rap af dem betød.

Man skal især passe på når man bruger strpos():

http://www.php.net/manual/en/function.strpos.php

Denne stump kode vil udføre '// not found' delen, hvis b'et bliver
fundet på plads 0, da 0 == false. Her skal der netop bruges 3
lighedstegn, da 0 er en integer og 'false' er en boolean, og kun ved
sammenligning af typer vil disse to vise sig at være forskellige.

Der findes forresten også en !==.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
http://www.jakobnielsen.dk/ | -- Terry Pratchett, Reaper Man
Jeg søger et fuldtidsjob som programmør. Tag et kig på hjemmesiden.



Leonard (02-10-2002)
Kommentar
Fra : Leonard


Dato : 02-10-02 19:11

"Jakob Møbjerg Nielsen" <jakob@dataloger.dk> skrev:

>Der findes forresten også en !==.

Nuhar jeg ledt længe (synes jeg selv) efter oversigt over de
forskellige sammenlignere.
Ligenu mangler en for 'mindre end eller lig med' => duer ikke.
--
mvh Leonard - http://leonard.dk/


Regin Larsen (02-10-2002)
Kommentar
Fra : Regin Larsen


Dato : 02-10-02 19:23

Leonard wrote:
> Nuhar jeg ledt længe (synes jeg selv) efter oversigt over de
> forskellige sammenlignere.
> Ligenu mangler en for 'mindre end eller lig med' => duer ikke.

Du skal bruge >=

http://dk.php.net/manual/en/language.operators.php


--
Regin


Niels Andersen (03-10-2002)
Kommentar
Fra : Niels Andersen


Dato : 03-10-02 00:06

Regin Larsen wrote in <3d9b3992$0$32530$edfadb0f@dspool01.news.tele.dk>:
>> Ligenu mangler en for 'mindre end eller lig med' => duer ikke.
> Du skal bruge >=

Den skal vende om. :)

Større end: >
Mindre end: <

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Dennis Hansen (24-09-2002)
Kommentar
Fra : Dennis Hansen


Dato : 24-09-02 21:40

Mark S. Rasmussen wrote:

> Er den korrekte syntaks ikke:
>
> $b = 0;
> $c = "to";
> if($b == $c) {echo "$b er lig $c"}
>
> Jeg er ASP nørd, så jeg kender ikke PHP ordentligt, men det er et
> bud.

Nej det er ikke lige derfor, man kan godt undlade klammer hvis det bare er
en oneliner der følger, det kan man gøre for både if, while, for etc.
og selv om det var det, så er resultatet det samme - output bliver
0 er lig to

Mvh
Dennis




Søg
Reklame
Statistik
Spørgsmål : 177503
Tips : 31968
Nyheder : 719565
Indlæg : 6408541
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste