Mag ik ook vragen waarom je een dubbele check doet op regel 5 en 6?
Eerst kijk je met isset of $_GET['username'] gevult is, vervolgens kijk je met !empty opnieuw of $_GET['username'] gevult is. Dit is natuurlijk overbodig.
if (emtpy()) kijkt of je opgegeven variabel/superglobal niet gevuld is
if (!emtpy()) kijkt of je opgegeven variabel/superglobal gevuld is
if (isset()) kijkt of je opgegeven variabel/superglobal gevuld is
if (!isset()) kijkt of je opgegeven variabel/superglobal niet gevuld is
Probeer ook om van die die's af te komen, er gaat niemand dood maak daar een nette foutafhandeling voor (zoals Aar al aangeeft)
- isset kijkt of een variabele bestaat. True of false
- empty kijkt naar de inhoud van die variabele en beslist dan of die inhoud als true of false wordt aanzien.
Merk op dat een lege string "", een nul, een null... allemaal als false worden aanzien.
Je kan een variabele dus een waarde geven, zodat isset true geeft, maar !empty geeft false.
Dat klopt niet helemaal, isset kijkt of de variabel bestaat en dat hij niet null is.
Het kan dus gezien worden als de vervanger van empty die in principe alleen kijkt of de variabel null is.
info van php.net
[quote]
Determine if a variable is set and is not NULL.
[/qoute]
Maar NULL is precies die vreemde waarde: nietser dan niets.
Als je een variabele op null zet, vernietig je ze; net zoals met unset(); voor zover ik weet;
Kan iemand me hier tegenspreken (zeer goed mogelijk)?
Of weet iemand snippets code te verzinnen om dit te demonstreren?
----
Ik ben hier zelf wat testjes aan het doen.
Met javascript kan ik testjes verzinnen.
Dat is lastiger met php.
isset: is de variabele ergens aangemaakt?
empty: is de variabele ergens aangemaakt, heeft de variabele een positieve waarde? (dus 0, false, null geven een negatieve return)