login  Naam:   Wachtwoord: 
Registreer je!
 Forum

vreemd gebruik van null (eerste zicht)

Offline MiST - 20/10/2008 00:52
Avatar van MiSTLid Ik kreeg laatst het idee om eens door de Zend Framework sourcecode te gaan. regelmatig duiken er lijnen op als

  1. if(null === $var)


Zelfde met de !== variant.

Dit lijkt me eigenlijk wel een vreemde check. Kan iemand deze toelichten? Ik snap er niets van... 

Thx,
Michiel

3 antwoorden

Gesponsorde links
Offline Scott - 20/10/2008 03:15 (laatste wijziging 20/10/2008 03:16)
Avatar van Scott Gouden medaille

PHP ver gevorderde
=== wordt gebruikt om te kijken of een variabele van hetzelfde type is als waarmee vergeleken wordt. Voorbeeld:

  1. $var = '123';
  2.  
  3. if ($var === 123) {
  4.  
  5. echo '$var is een integer';
  6.  
  7. }
  8.  
  9. else {
  10.  
  11. echo '$var is geen integer';
  12.  
  13. }


Dan is de output '$var is geen integer', en dat klopt, want hij staat tussen ''.

Als je bedoelt waarom er staat null === $var ipv $var === null: dat wordt vaak gedaan om typfouten te voorkomen in het statement.

Stel, ik maak per ongeluk deze code:
  1. if ($var = null) {
  2.  
  3. echo 'foo bar';
  4.  
  5. }


Dan zal dit vrijwel altijd true zijn, omdat je $var eigenlijk altijd wel de waarde null mee kunt geven. Je kijkt er snel over heen en tijdens het debuggen kun je met zoiets simpels dus uren bezig zijn, terwijl null = $var een fout oplevert en je dus meteen weet waar je een fout hebt gemaakt.
Offline Kr4nKz1n - 20/10/2008 08:46
Avatar van Kr4nKz1n Onbekend Ik weet niet wat je controleert, maar vaak is de functie empty() erg handig.
Offline MiST - 20/10/2008 11:05 (laatste wijziging 20/10/2008 11:06)
Avatar van MiST Lid ja, het ging hem dus echt om de volgorde. Dat had ik misschien niet drekt duidelijk gemaakt... 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s