Hướng dẫn php exit vs return

I would like to know in the following case which is a better option:

In the PHP script, if the $fileSize variable is larger than 100, I stop the script;

Case I:

 100 )
{
   $results['msg'] = 'fileSize is too big!';
   echo json_encode( $results );
   exit();
}

Case II:

 100 )
{
   $results['msg'] = 'fileSize is too big!';
   exit( json_encode( $results ) );
}

Case III:

 100 )
{
   $results['msg'] = 'fileSize is too big!';
   return( json_encode( $results ) );
}

Which of the three (3) options above is the best?

Hướng dẫn php exit vs return

nyedidikeke

6,2127 gold badges43 silver badges53 bronze badges

asked Aug 14, 2010 at 15:49

Since you are using exit and return within the global scope (not inside a function), then the behavior is almost the same.

The difference in this case will appear if your file is called through include() or require(). exit will terminate the program, while return will take the control back to the calling script (where include or require was called).

answered Aug 14, 2010 at 15:57

AzizAziz

19.3k6 gold badges61 silver badges69 bronze badges

I would tend to go with the return() method, so that other scripts can continue executing. That way, if you ever use another script to call this one, it can do error-handling to deal with the case where the file is too large, as opposed to always halting execution.

answered Aug 14, 2010 at 15:57

Jeffrey BlakeJeffrey Blake

9,5196 gold badges42 silver badges65 bronze badges

It depends...if your script is intended to do nothing else but output a message, and you don't want the script to do anything afterwards, exit() will work. Otherwise, use return.

answered Aug 14, 2010 at 15:58

Hướng dẫn php exit vs return

Crayon ViolentCrayon Violent

31.6k5 gold badges53 silver badges78 bronze badges

Exit terminates the program like die(). manual

answered Aug 14, 2010 at 15:58

IznogoodIznogood

12.1k3 gold badges25 silver badges44 bronze badges

dievà exit(các chức năng tương đương )

Chấm dứt thực thi tập lệnh.

return

Trả lại quyền điều khiển chương trình cho mô-đun gọi. Việc thực thi tiếp tục tại câu lệnh sau lệnh gọi của mô-đun được gọi.

Nếu được gọi từ bên trong một hàm, câu lệnh trả về ngay lập tức kết thúc việc thực thi hàm hiện tại và trả về đối số của nó dưới dạng giá trị của lệnh gọi hàm. return cũng kết thúc việc thực thi câu lệnh eval () hoặc tệp tập lệnh.

Nếu được gọi từ phạm vi toàn cục, thì việc thực thi tệp kịch bản hiện tại sẽ kết thúc. Nếu tệp kịch bản hiện tại được bao gồm hoặc được yêu cầu, thì quyền kiểm soát sẽ được chuyển trở lại tệp đang gọi. Hơn nữa, nếu tệp kịch bản hiện tại được bao gồm, thì giá trị được cung cấp để trả về sẽ được trả về dưới dạng giá trị của lệnh gọi bao gồm. Nếu trả về được gọi từ trong tệp kịch bản chính, thì quá trình thực thi tập lệnh sẽ kết thúc. Nếu tệp kịch bản hiện tại được đặt tên theo tùy chọn cấu hình auto_prepend_file hoặc auto_append_file trong php.ini, thì quá trình thực thi của tệp kịch bản đó sẽ kết thúc.


die vs exit

Sự khác biệt giữa die()exit()trong PHP là nguồn gốc của chúng .

  • exit()là từ exit()trong C .
  • die()là từ dietrong Perl .

Hướng dẫn sử dụng PHP

Hướng dẫn sử dụng PHP cho die:

Cấu trúc ngôn ngữ này tương đương với exit().

Hướng dẫn sử dụng PHP cho exit:

Lưu ý: Cấu trúc ngôn ngữ này tương đương với die().

Hướng dẫn sử dụng PHP cho Danh sách Bí danh Hàm :

die là một bí danh cho chức năng chính exit()


KHÁC BIỆT TRONG CÁC NGÔN NGỮ KHÁC

die()exit()khác nhau trong các ngôn ngữ khác nhưng trong PHP họ giống hệt nhau.

Từ Tuy nhiên, một rant PHP khác :

... Là một lập trình viên C và Perl, tôi đã sẵn sàng trả lời, "Tại sao, exit () chỉ dừng chương trình với trạng thái thoát số, trong khi die () in ra thông báo lỗi cho stderr và thoát với trạng thái EXIT_FAILURE. " Nhưng sau đó tôi nhớ rằng chúng ta đang ở trong vùng đất hỗn độn của PHP.

Trong PHP, exit () và die () giống hệt nhau.

Các nhà thiết kế rõ ràng đã nghĩ "Hmm, hãy mượn exit () từ C. Và những người Perl có thể sẽ thích nó nếu chúng tôi cũng lấy die () từ Perl . Rất tiếc! Bây giờ chúng ta có hai hàm exit! có thể lấy một chuỗi hoặc số nguyên làm đối số và làm cho chúng giống hệt nhau! "

Kết quả cuối cùng là điều này không thực sự làm cho mọi thứ trở nên "dễ dàng" hơn, chỉ là khó hiểu hơn. Các lập trình viên C và Perl sẽ tiếp tục sử dụng exit () để chỉ tung ra một giá trị thoát số nguyên, và die () để tung ra một thông báo lỗi và thoát ra khi bị lỗi. Người mới và những người sử dụng ngôn ngữ thứ nhất PHP có thể sẽ tự hỏi "umm, hai hàm thoát, tôi nên sử dụng hàm nào?" Hướng dẫn sử dụng không giải thích tại sao có exit () và die ().

Nói chung, PHP có rất nhiều điểm dư thừa kỳ lạ như thế này - nó cố gắng thân thiện với những người đến từ các nền tảng ngôn ngữ khác nhau, nhưng trong khi làm như vậy, nó tạo ra sự dư thừa khó hiểu.

3 hữu ích 0 bình luận chia sẻ