PDA

Bekijk Volledige Versie : PHP vraag, onverwacht resultaat of toch niet?



MaMo
13/01/09, 13:45
Waarom print onderstaande PHP functie 'Hello' uit ondanks dat het argument
'abcdef' is?

<?php

function test($argument) {

if($argument == 0) {
echo 'Hello';
}

}

test('abcdef');

?>

Marcel

Leihcim
13/01/09, 13:55
MaMo wrote:
> Waarom print onderstaande PHP functie 'Hello' uit ondanks dat het argument
> 'abcdef' is?
>
> <?php
>
> function test($argument) {
>
> if($argument == 0) {
> echo 'Hello';
> }
>
> }
>
> test('abcdef');
>
> ?>

Omdat de conversie van de string 'abcdef' naar een integer 0 oplevert. Er
zitten immers geen cijfers in. Als je if($argument) of
if(isset($argument)) gebruikt gaat het waarschijnlijk zoals je verwacht.

Erick T. Barkhuis
13/01/09, 13:55
MaMo:
> Waarom print onderstaande PHP functie 'Hello' uit ondanks dat het argument
> 'abcdef' is?
>
> <?php
>
> function test($argument) {
>
> if($argument == 0) {
> echo 'Hello';
> }
>
> }
>
> test('abcdef');
>
> ?>

Het heeft er mee te maken dat je een numerieke uitvraging doet op een
alfanumerieke string. Bij de omzetting van deze string naar numeriek
wordt de waarde (min of meer) nul, en klopt de uitvraging.

Probeer eens
if($argument == "0")
en zie het verschil.


--
Erick

MaMo
13/01/09, 14:15
"Erick T. Barkhuis" <erick.use-net@ardane.c-o-m> wrote in message
news:MPG.23d6ac26c514fd0a9897ba@127.0.0.1...
> MaMo:
>> Waarom print onderstaande PHP functie 'Hello' uit ondanks dat het
>> argument
>> 'abcdef' is?
>>
>> <?php
>>
>> function test($argument) {
>>
>> if($argument == 0) {
>> echo 'Hello';
>> }
>>
>> }
>>
>> test('abcdef');
>>
>> ?>
>
> Het heeft er mee te maken dat je een numerieke uitvraging doet op een
> alfanumerieke string. Bij de omzetting van deze string naar numeriek
> wordt de waarde (min of meer) nul, en klopt de uitvraging.
>
> Probeer eens
> if($argument == "0")
> en zie het verschil.
>
>
> --
> Erick

Dank!

robert
13/01/09, 14:25
Erick T Barkhuis <erick.use-net@ardane.c-o-m>:
> Het heeft er mee te maken dat je een numerieke uitvraging doet op een
> alfanumerieke string. Bij de omzetting van deze string naar numeriek
> wordt de waarde (min of meer) nul, en klopt de uitvraging.
>
> Probeer eens
> if($argument == "0")
> en zie het verschil.

Of eventueel met de === operator:
if ($argument === 0)

(ervan uitgaande dat er getest moet worden op een integer 0)

--
robert

Erick T. Barkhuis
13/01/09, 14:35
robert:
> Erick T Barkhuis <erick.use-net@ardane.c-o-m>:

> > Probeer eens
> > if($argument == "0")
> > en zie het verschil.
>
> Of eventueel met de === operator:
> if ($argument === 0)
>
> (ervan uitgaande dat er getest moet worden op een integer 0)

P'cies. Daarom schreef ik ook:
> (min of meer) nul
Ik vond het in dit verband niet echt noodzakelijk verder uit te wijden
over het verschil tussen == en ===. Immers, het lijkt er op dat de OP
alleen maar een testje of een schoolopdracht uitvoerde, en niet bezig
was een oerdegelijke applicatie op te zetten.


--
Erick

robert
13/01/09, 14:35
Erick T Barkhuis <erick.use-net@ardane.c-o-m>:
> Immers, het lijkt er op dat de OP alleen maar een testje of een
> schoolopdracht uitvoerde, en niet bezig was een oerdegelijke applicatie
> op te zetten.

Dat ik me daar zo in kan vergissen, ik zag de nieuwe Google al vormgegeven
worden... ;)

--
robert

Erick T. Barkhuis
13/01/09, 14:35
robert:
> Erick T Barkhuis <erick.use-net@ardane.c-o-m>:
> > Immers, het lijkt er op dat de OP alleen maar een testje of een
> > schoolopdracht uitvoerde, en niet bezig was een oerdegelijke applicatie
> > op te zetten.
>
> Dat ik me daar zo in kan vergissen, ik zag de nieuwe Google al vormgegeven
> worden... ;)

Snel!
Alle aandelen "MaMo" kun je nu nog voor een prikkie kopen!

--
Erick

Hans W
14/01/09, 00:15
On Jan 13, 2:32 pm, Erick T. Barkhuis <erick.use-...@ardane.c-o-m>
wrote:
> robert:
>
> > Erick T Barkhuis <erick.use-...@ardane.c-o-m>:
> > > Immers, het lijkt er op dat de OP alleen maar een testje of een
> > > schoolopdracht uitvoerde, en niet bezig was een oerdegelijke applicatie
> > > op te zetten.
>
> > Dat ik me daar zo in kan vergissen, ik zag de nieuwe Google al vormgegeven
> > worden... ;)
>
> Snel!
> Alle aandelen "MaMo" kun je nu nog voor een prikkie kopen!

Klinkt net als Zato :-) Nu maar hopen dat het echt zo is zodat ik hier
de bbc kan
ontvangen.....

Hans