Nee Tom, als je je script goed opbouwt heb je echt geen exit, die, goto, e.d. nodig. Dit zijn meer 'noodoplossingen' die ook met goed programmeren kunnen worden opgelost.
Omdat het eigenlijk altijd wordt gedaan om om een probleem heen te programmeren.
En exit en die wil je sowieso niet, want dit stopt het hele script.
<?php
//database mislukt
die();
?>
En direct kan je hele website niet meer gebruikt worden en wordt html e.d. niet meer afgesloten. Je kunt je dus ook andersom afvragen waarom je dat wil.
Waarom zou je een script abrupt willen stoppen en niet gewoon netjes de fout weergeven en verder gaan?
Ik zou dus het hele onderste stuk gekopieerd hebben.
Misschien komt dit wel omdat ik HTML/PHP niet uit een boek heb geleerd. Maar geleerd heb door middel van kleine stukken code van internet.
Toevoeging op 01/11/2013 15:22:33:
Michael - op 01/11/2013 15:15:20
Omdat het eigenlijk altijd wordt gedaan om om een probleem heen te programmeren.
En exit en die wil je sowieso niet, want dit stopt het hele script.
<?php
//database mislukt
die();
?>
En direct kan je hele website niet meer gebruikt worden en wordt html e.d. niet meer afgesloten. Je kunt je dus ook andersom afvragen waarom je dat wil.
Waarom zou je een script abrupt willen stoppen en niet gewoon netjes de fout weergeven en verder gaan?
In mijn geval wil ik dit dus eigenlijk wel, dat het hele script gestopt wordt.
Nee jij wil helemaal niet dat het script stopt. Jij wil dat het formulier niet zichtbaar is als de persoon is ingelogd. Dit kun je heel simpel doen met een if/else.
Eigenlijk is je voorbeeld ook te klein voor een goed idee. Stel dat je onder die exit() nog je footer hebt met je menu en javascript e.d. Deze ga jij dus dubbel programmeren. Of bij 2 exit()'s 3 dubbel.
Misschien dat iemand anders dit makkelijker kan uitleggen, en ja ik deed dat 10 jaar geleden ook wel eens, maar neem nou maar aan dat je dit veel mooier kan oplossen.
Nee jij wil helemaal niet dat het script stopt. Jij wil dat het formulier niet zichtbaar is als de persoon is ingelogd. Dit kun je heel simpel doen met een if/else.
Ik zal dit beter in mijn code verwerken voortaan.
Michael - op 01/11/2013 15:37:36
Eigenlijk is je voorbeeld ook te klein voor een goed idee. Stel dat je onder die exit() nog je footer hebt met je menu en javascript e.d. Deze ga jij dus dubbel programmeren. Of bij 2 exit()'s 3 dubbel.
Dit deed ik eerst wel ja, daarna ben ik overgestapt naar PHP includes().
En ja, dan zet ik nog steeds 2/3/4 keer op een pagina dezelfde includes neer.
Michael - op 01/11/2013 15:37:36
Misschien dat iemand anders dit makkelijker kan uitleggen, en ja ik deed dat 10 jaar geleden ook wel eens, maar neem nou maar aan dat je dit veel mooier kan oplossen.
Ik denk dat ik je goed begrijp.
Alleen ook al is deze methode goed, ik ben bang dat je met grote scripts hier problemen mee krijgt.
Ik heb onderstaande code niet getest maat misschien dat het je wel duidelijk maakt dat je geen gebruik hoeft te maken van die, exit, stop en dergelijke niet aan te bevelen opdrachten.
Ik denk dat ik je goed begrijp.
Alleen ook al is deze methode goed, ik ben bang dat je met grote scripts hier problemen mee krijgt.
Nee het is juist andersom. Met exit() en die() ga je problemen krijgen.
Met grote scripts moet je weten hoe je netjes programmeert en waar wat moet staan.
Code die je wil hergebruiken in functies of classes zetten en niet middels een include.
Include kan dan wel weer een functie of classe bevatten of gewoon een stuk van je website zoals een header, menu, footer, contact formulier e.d.
Hele grote scripts doe je sowieso met MVC, waarin je enkel onderdeel apart programmeert.