PDA

Bekijk Volledige Versie : probleempje met if functie



Matthijs de Z
20/03/03, 14:35
Hallo,

Ik heb het vermoeden dat ik ergens overheen kijk.

Het probleem is als volgt; Ik heb een array met daarin een waarde die kan
zijn 'hoger' of 'lager'. Deze array heb ik uit een file gahaald en heet
$opgegevenvoorwaarde. Uiteraard heb ik gecontroleerd of de
$opgegevenvoorwaarde wel de juiste waarde heeft, door het even in een echo
te zetten. En het klopt. Maar nu wil ik $opgegevenvoorwaarde vergelijken met
"hoger" of "lager" om daar een voorwaarde aan te stellen. Dat doe ik als
volgt:

//voorwaarde controle opsplitsen

//wat te doen bij voorwaarde: hoger
if($opgegevenvoorwaarde="hoger")
{
//binnen de voorwaarde 'hoger dan', opgeven wat te doen
if($hoogaex>$opgegevengrens)
{
echo"<br>[hoger] de waarde is bereikt. De grens lag op $opgegevengrens en
de hoogste koers was $hoogaex";
}

//afsluiten voorwaarde controle 'hoger dan' en doorgaan naar de 'lager dan'
voorwaarde
}

Maar nu is het geval, dat het niet uit maakt of $opgegevenvoorwaarde de
waarde 'lager' of 'hoger' heeft (zonder ' natuurlijk), die echo output komt
er sowieso. Heb ik hier even iets over het hoofd gezien, of doe ik iets echt
fout?
Groeten,

Matthijs

P.S. de waarde van $hoogaex en $opgegevengrens zijn beide ook correct. Ik
heb ze gecontroleerd met een echo.

Daniel Tryba
20/03/03, 14:35
Matthijs de Z <haalallesvoorhetstreepjeplushetstreepjezelfweg-mldz@hotmail.com> wrote:
> //wat te doen bij voorwaarde: hoger
> if($opgegevenvoorwaarde="hoger")
^ een toekenning

Je geeft $opgegevenvoorwaarde de waarde 'hoger' en dat evalueert als
true

--

Daniel Tryba

Matthijs de Z
20/03/03, 14:35
> > //wat te doen bij voorwaarde: hoger
> > if($opgegevenvoorwaarde="hoger")
> ^ een toekenning
>
> Je geeft $opgegevenvoorwaarde de waarde 'hoger' en dat evalueert als
> true

Het zou toch ook als true geƫvaluerd moeten worden om daarna door te gaan
met de uitwerking van de true voorwaarde. Of zie ik dat nu toch echt
helemaal verkeerd :-(
Groeten,

Matthijs


>
> --
>
> Daniel Tryba
>

Daniel Tryba
20/03/03, 14:50
Matthijs de Z <haalallesvoorhetstreepjeplushetstreepjezelfweg-mldz@hotmail.com> wrote:
>> > //wat te doen bij voorwaarde: hoger
>> > if($opgegevenvoorwaarde="hoger")
>> ^ een toekenning
>>
>> Je geeft $opgegevenvoorwaarde de waarde 'hoger' en dat evalueert als
>> true
>
> Het zou toch ook als true ge?valuerd moeten worden om daarna door te gaan
> met de uitwerking van de true voorwaarde. Of zie ik dat nu toch echt
> helemaal verkeerd :-(

Voorbeeld:

$foo='bar';

if($foo='bla')
{
echo $foo;
}
else
{
echo 'dit gebeurt nooit';
}

Ongeacht de waarde van $foo _voor_ de if, _voor_ het evalueren zal er de
waarde 'bla' aan worden toegekent aan $foo. 'bla' evalueert als waar en
de else wordt dus nooit bereikt.

Je bedoelt zeer waarschinlijk ipv $opgegevenvoorwaarde="hoger"
$opgegevenvoorwaarde=="hoger" of strcmp($opgegevenvoorwaarde,"hoger")==0

--

Daniel Tryba

Matthijs de Z
20/03/03, 14:50
> Ongeacht de waarde van $foo _voor_ de if, _voor_ het evalueren zal er de
> waarde 'bla' aan worden toegekent aan $foo. 'bla' evalueert als waar en
> de else wordt dus nooit bereikt.
>
> Je bedoelt zeer waarschinlijk ipv $opgegevenvoorwaarde="hoger"
> $opgegevenvoorwaarde=="hoger" of strcmp($opgegevenvoorwaarde,"hoger")==0

Toevallig wilde ik net posten dat ik mijn foutje ontdekt had. het was
inderdaad ==.
bedankt in ieder geval.
Mazzel,

Matthijs