PHP-exit czy return który jest lepszy?
Chciałbym wiedzieć w następującym przypadku, który jest lepszym rozwiązaniem:
W skrypcie PHP, jeśli zmienna $fileSize
jest większa niż 100, Zatrzymuję skrypt;
Przypadek I:
<?php
if ( $fileSize > 100 )
{
$results['msg'] = 'fileSize is too big!';
echo json_encode( $results );
exit();
}
Przypadek II:
<?php
if ( $fileSize > 100 )
{
$results['msg'] = 'fileSize is too big!';
exit( json_encode( $results ) );
}
Przypadek III:
<?php
if ( $fileSize > 100 )
{
$results['msg'] = 'fileSize is too big!';
return( json_encode( $results ) );
}
Która z trzech (3) powyższych opcji jest najlepsza?
4 answers
Ponieważ używasz exit
i return
w zasięgu globalnym (Nie wewnątrz funkcji), zachowanie jest prawie takie samo.
Różnica w tym przypadku pojawi się, jeśli plik zostanie wywołany przez include()
lub require()
. exit
zakończy działanie programu, natomiast return
przejmie kontrolę nad skryptem wywołującym (gdzie wywołano include
lub require
).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-14 16:02:09
Zwykle stosuję metodę return()
, aby Inne skrypty mogły kontynuować wykonywanie. W ten sposób, jeśli kiedykolwiek użyjesz innego skryptu do wywołania tego, może to zrobić obsługę błędów, aby poradzić sobie z przypadkiem, gdy plik jest zbyt duży, w przeciwieństwie do zawsze wstrzymywania wykonania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-14 15:57:26
Exit kończy program jak die (). manual
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-14 15:58:01
To zależy...jeśli twój skrypt ma nie robić nic innego, jak tylko wypisywać wiadomość, a nie chcesz, aby skrypt robił cokolwiek później, exit() zadziała. W przeciwnym razie użyj return.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-14 15:58:34