login  Naam:   Wachtwoord: 
Registreer je!
 Forum

if functie

Offline kenzo - 03/01/2008 11:37
Avatar van kenzoPHP beginner Hallo,

wat is het verschil bij een if tussen:

  1. <?PHP
  2.  
  3. if($lijst['onderwerp'] = " test ";
  4. {
  5. echo "";
  6. }
  7. ?>


en
  1. <?PHP
  2.  
  3. if($lijst['onderwerp'] == " test ";
  4. {
  5. echo "";
  6. }
  7. ?>



1 = en
2 = ?

= "";

of

== "";


?

Bedankt!

9 antwoorden

Gesponsorde links
Offline Shonof - 03/01/2008 11:41
Avatar van Shonof Nieuw lid $lijst['onderwerp'] = " test "
hierbij word $lijst['onderwerp'] test

$lijst['onderwerp'] == " test "
hierbij wordt $lijst['onderwerp'] met test vergeleken.
Offline kenzo - 03/01/2008 11:42
Avatar van kenzo PHP beginner ok,

bedankt...

bij deze moet dus == altijd zo zijn (je vergelijkt of iets is wat je opgeeft?)
Offline Shonof - 03/01/2008 11:47
Avatar van Shonof Nieuw lid klopt
Offline markpieper - 03/01/2008 11:48
Avatar van markpieper HTML beginner Als je iets wilt vergelijken, kan je ook nog === gebruiken. Deze kijkt niet alleen naar de inhoud, maar ook naar de types. Bijvoorbeeld 1 (int) en "1" (string) zijn dan niet gelijk.
Offline Mad_Mike - 03/01/2008 11:50
Avatar van Mad_Mike PHP beginner heel simpel:

'=' is toekennen
'==' is vergelijken
'===' is vergelijken + type (int/string/bool/etc..) moet zelfde zijn
Offline Abbas - 03/01/2008 11:59
Avatar van Abbas Gouden medaille

Crew .NET
Zorg dus dat je in een if-statement altijd 2 0f 3 "="-tekens gebruikt anders is je conditie altijd waar, tenzij je 0 uitkomt. Stel:
  1. <?php
  2.  
  3. if($x = 1)
  4. {
  5. for($i = 0; i < 100000000000000; $i++)
  6. {
  7. echo "blaat";
  8. }
  9. }
  10.  
  11. ?>

Dit is natuurlijk belachelijk qua code maar het is maar om aan te tonen dat je zeker niet 1 "="-teken gebruikt! 
Offline Ibrahim - 04/01/2008 15:03
Avatar van Ibrahim PHP expert Er zijn gevallen waar het wel kan 

  1. <?php
  2.  
  3. if( $rQuery = mysql_query(...) )
  4. {
  5. // gebruik maken van resultaten
  6. }
  7. else
  8. {
  9. }
Offline Abbas - 04/01/2008 15:06
Avatar van Abbas Gouden medaille

Crew .NET
Het gaat hem hier over gevallen zoals met strings en integers vergelijken en dan kan het niet! ;-)
Offline Thomas - 04/01/2008 16:31 (laatste wijziging 04/01/2008 16:41)
Avatar van Thomas Moderator
Psycho schreef:
Er zijn gevallen waar het wel kan 

[..code..]

Hm?
Als je een assigment $var = <iets_anders> hebt, dan kun je dit gebruiken als expressie. Je hebt als het ware al beschikking over de (geevalueerde) waarde van <iets_anders> tijdens de toekenning.

mysql_query geeft of een resource terug, of false (als de query echt fout is), maar deze resource kan ook null zijn bij geen resultaten (toch?), en if (null) evalueert ook tot false (toch?), dus kun je (als mijn aannames kloppen) met dat if-statement GEEN ondescheid maken tussen een foutieve query en een query die geen resultaten oplevert. Dat lijkt mij in het kader van netjes programmeren niet echt wenselijk, het helpt het debuggen iig niet.

Ik zou zo'n constructie niet gebruiken .

EDIT: Hm, de resource is niet "leeg" als je geen resultaten hebt, toch vreemd...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.209s