Op maandag 11 maart 2002 15:29 schreef Janoz e.e.a. over or die-constructie:
Vandaar dat ik ook een onwijze hekel heb aan de
or die-constructie. Niet om de
or maar om de
die.
imo is het namelijk altijd netter je code op een bepaalde manier in te delen, bijvoorbeeld:
• Data inlezen
• Data verwerken
• Outputten
Het feit dat je een fout tegenkomt bij het verwerken, wil nog niet zeggen dat je niets kunt outputten (namelijk, je kunt een nette, userfriendly errormessage outputten). Met
die wordt het programma gewoon "lui"
"hmm, 't lukt niet, nou laat dan maar, dan pleur ik wel gewoon dood neer."

vies+ranzig
Met
or daarentegen maak je gewoon de keuze voor een bepaalde syntax. Net als dat je bijvoorbeeld een hele hoop in ( a ? b : c ) constructies kunt plempen. Da's een keuze...
* drm dacht wederom aan het begrip "desugaring" waar mbravenboer ons nog wel eens e.e.a. over heeft uitgelegd.
edit: ook even een reactie op Soultaker
___________________________________________________________________________Soultaker:
Dat is grote onzin. Nu suggereer je dat 'or' een statement is dat een expressie met een statement combineert, terwijl het juist een expressie is die een of beide expressies evalueert. In jou code is het net alsof 'or' de eerste expressie evalueert en concludeert dat 'ie slechts een deel ervan (namelijk alleen '$result') in het if-statement moet controleren! Ik ben dan heel benieuwd hoe jij de 'afkorting' if($a or $b) denkt uit te schrijven.
imo heeft Janoz stiekem toch gelijk hierin.
Het is namelijk gewoon gejat uit een dergelijke constructie die in Perl bestaat, en dat is echt en alleen maar syntactische suiker.
Tenslotte moet je onthouden dat een situatie waarin 'die' aangeroepen wordt normaliter niet voor kan komen. Het is onzin dat de website layout gehandhaafd zou moeten blijven als er een fatale fout optreedt.
In theorie wel, maar in de praktijk niet. Als jij een of andere ubersite hebt gemaakt waarbij er toevallig de MySQL server onderuit ligt, dan serveer je de mensen met een berichtje waarin staat "er zijn wat problemen met de database". Je opdrachtgever zal echt wel zeggen dat dat er netjes uit moet zien, en als je opdrachtgever dat niet zegt, vind ik dat de taak van de webdeveloper. Puur een kwestie van kwaliteit afleveren.
Fouten die WEL verwacht kunnen worden, zoals entries in de database die niet gevonden kunnen worden, moeten natuurlijk niet met 'die' afgehandeld worden. Daar is die functie dan ook niet voor bedoeld.
Tja, je kunt je afvragen of dat fouten genoemd kunnen worden, maar goed....
edit2: en ook nog eentje op daniel_hoenderdos
___________________________________________________________________________daniel_hoenderdos:
Wat een gezwam over persoonlijke voorkeuren weer zeg.
echo "blaat"; exit(); is ook vies. Hoe wil je dan je errormessages outputten?
code:
1
2
3
4
5
6
7
8
9
| result = doe_iets;
if ( result is een geldig result )
{
doe result verwerken
}
else
{
doe error verwerken
} |
En een lui php-script? Wat een onzin. sleep() is een lui phpscript.

tja, just a feeling.