Verschil tussen exit; / exit(); / break;
Wat is het verschil tussen deze drie?
- exit;
- exit();
- break;
- exit;
- exit();
- break;
In iedergeval geval maken die haakjes bij exit totaal geen verschil.
Exit; het maakt geen verschil als er haakjes rond zitten, exit stopt het script direct op het punt waar exit staat en de rest word niet geladen
Break; word gebruikt in loops enz. en stopt het huidige code blokje voordat hij het andere stukje code leest
Corrigeer me als ik fout ben
Break; word gebruikt in loops enz. en stopt het huidige code blokje voordat hij het andere stukje code leest
Corrigeer me als ik fout ben
Exit kan je ook als functie gebruiken met een string:
exit("Het script is gestopt");
Doordat we netjes met if/else kunnen controleren is het gebruik van exit/die vaak overbodig.
Ter informatie : Zo'n uitgevoerd 'codeblokje' heet een iteratie.
exit("Het script is gestopt");
Doordat we netjes met if/else kunnen controleren is het gebruik van exit/die vaak overbodig.
PHP MODEV op 06/07/2015 07:50:20:
Break; word gebruikt in loops enz. en stopt het huidige code blokje voordat hij het andere stukje code leest
Ter informatie : Zo'n uitgevoerd 'codeblokje' heet een iteratie.
Gewijzigd op 06/07/2015 08:38:19 door - Ariën -
Het verschil tussen 'exit;' en 'exit();' is best wel interessant overigens. In PHP heb je twee syntaxelementen die allebei op functies lijken: echte functies (die haakjes vereisen) en 'language constructs'. De tweede categorie bevat een aantal ingebouwde 'functies', zoals empty, isset, return en exit. Deze language constructs worden apart door de compiler begrepen en hebben dus andere syntax regels dan functies. Exit gedraagt zich alleen heel anders dan return.
Dit mag:
Maar de volgende dingen mogen dus niet:
Uit https://github.com/php/php-src/blob/master/Zend/zend_language_parser.y :
Raar taaltje, dat PHP. Nog een opmerking over exit:
Als je een string als argument geeft, eindigt PHP met 0 als statuscode (niets aan de hand) en echo't de string. Als je het een integer als argument geeft, eindigt PHP met die integer als statuscode, zonder iets te echo'en:
Dit mag:
Maar de volgende dingen mogen dus niet:
Uit https://github.com/php/php-src/blob/master/Zend/zend_language_parser.y :
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
| T_EXIT exit_expr { $$ = zend_ast_create(ZEND_AST_EXIT, $2); }
// en verderop
exit_expr:
/* empty */ { $$ = NULL; }
| '(' optional_expr ')' { $$ = $2; }
;
// en verderop
| T_RETURN optional_expr ';' { $$ = zend_ast_create(ZEND_AST_RETURN, $2); }
// en verderop
exit_expr:
/* empty */ { $$ = NULL; }
| '(' optional_expr ')' { $$ = $2; }
;
// en verderop
| T_RETURN optional_expr ';' { $$ = zend_ast_create(ZEND_AST_RETURN, $2); }
Raar taaltje, dat PHP. Nog een opmerking over exit:
Als je een string als argument geeft, eindigt PHP met 0 als statuscode (niets aan de hand) en echo't de string. Als je het een integer als argument geeft, eindigt PHP met die integer als statuscode, zonder iets te echo'en:
Code (php)
1
2
3
4
5
2
3
4
5
pim$ php -r 'exit("abc");'; echo " $?" // => abc 0
pim$ php -r 'exit(1);'; echo " $?" // => abc 1
// Ook leuk, dankzij het overflowen van de exit status:
pim$ php -r 'exit(-1);'; echo " $?" // => 255
pim$ php -r 'exit(1);'; echo " $?" // => abc 1
// Ook leuk, dankzij het overflowen van de exit status:
pim$ php -r 'exit(-1);'; echo " $?" // => 255
Gewijzigd op 06/07/2015 14:49:55 door Pim -




