Это можно легко продемонстрировать, например, у вас есть функция:
funciton foo(){
echo "foo\n";
return;
echo 'bar';
}
если вы звоните
foo();
Он распечатает
foo
Но не bar
. После того, как указатель выполнения попадает в ответ, он вернется обратно туда, откуда был вызван foo()
. Это также можно легко показать.
foo();
foo();
foo();
Печать
foo
foo
foo
UPDATE: основаны от ваших комментариев правильный способ делать то, что вы хотите, это
if(empty($_FILES['file']['name'])){
echo "no image was selected";
exit();
}
if($two_many_images){
echo "Only x images are alowed to upload";
exit();
}
if($size>2014522){
echo "Size error";
exit();
}
foreach($_FILES["file"]['tmp_name'] as $key=>$imgLocation){
uploadImage($_FILES["fileToUpload"]['tmp_name'][$key], $imgLocation);
}
Я использую exit()
вместо возвращения, потому что это более удобным для чтения и имеет смысл, хотя в вашем случае возврат имеет тот же эффект. Exit полностью завершит выполнение для php, что действительно то, что вы хотите. Вы также можете сделать что-то вроде
die('Message');
Или
exit('Message');
Как хорошо, который будет выйти и вывести сообщение. Они все почти такие же ... Я положил echo
сначала только потому, что мне всегда было немного грязно, чтобы положить вещи в выход. Не знаю, почему это так, может быть, я привязываю его к непреднамеренному поведению из-за того, что die() так сильно находится в верхней части файлов, которые не предназначены для запуска вне рамки. Но я отвлекся.
Как раз для полноты, основанной на ваших комментариях, если вы вызываете возврат из глобальной области действия в PHP, у нее нет места для возврата, поэтому выполнение просто останавливается в этой точке. Причина, по которой лучше использовать exit или die, заключается в том, что возврат имеет совершенно иное поведение, которое заключается в «возврате» данных из вызова функции. Таким образом, более читаемо использовать метод, поведение которого лучше всего соответствует тому, что вы хотите. Это завершение выполнения текущего скрипта (экземпляр PHP).
нет, возвращение выходит исполнение в этой области видимости, (функция/метод) – ArtisticPhoenix
Потому что после возвращения типа каждая вещь исчезла – Saty
так вы имеете в виду мое второе условие не будет выполняться? – Aryan