Hướng dẫn php die vs exit

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ẻ

answer

508

Hướng dẫn php die vs exit

Không có sự khác biệt - chúng giống nhau.

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 die:

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

508 hữu ích 5 bình luận chia sẻ

answer

191

Hướng dẫn php die vs exit

SỰ KHÁC BIỆT TRONG NGUỒN GỐC

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 .

THIẾT BỊ CHỨC NĂNG

die()exit()là các chức năng tương đương.

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 các bí danh hàm :

die là một bí danh cho chức năng chủ 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ừ một đoạn trích 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ỉ bảo vệ chương trình với trạng thái thoát số, trong khi die () in thông báo lỗi sang stderr và thoát với trạng thái EXIT_FAILURE. " Nhưng sau đó tôi nhớ chúng ta đang ở trong vùng đất cú pháp lộn xộ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, chúng ta hãy mượn exit () từ C. Và mọi người Perl có thể sẽ thích nó nếu chúng ta chết (cũng như từ Perl . Rất tiếc! Chúng ta có hai chức năng thoát ngay bây giờ! Hãy làm cho cả hai 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ự khiến 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ỉ ném một giá trị thoát số nguyên và die () để ném thông báo lỗi và thoát với lỗi. Người mới và những người sử dụng ngôn ngữ PHP đầu tiên có thể sẽ tự hỏi "umm, hai chức năng thoát, tôi nên sử dụng chức năng nào?" Hướng dẫn không giải thích tại sao có exit () và die ().

Nói chung, PHP có rất nhiều sự 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.

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

answer

53

Hướng dẫn php die vs exit

Như đã nêu trước đây, hai lệnh này tạo ra mã thông báo trình phân tích cú pháp giống nhau.

NHƯNG

Có một sự khác biệt nhỏ và đó là mất bao lâu để trình phân tích cú pháp trả lại mã thông báo.

Tôi đã không nghiên cứu trình phân tích cú pháp PHP, nhưng nếu đó là một danh sách dài các hàm bắt đầu bằng "d" và một danh sách ngắn hơn bắt đầu bằng "e", thì phải có một hình phạt thời gian tìm kiếm tên hàm cho các hàm bắt đầu bằng " e ". Và có thể có sự khác biệt khác do cách kiểm tra toàn bộ tên hàm.

Tôi nghi ngờ nó sẽ có thể đo lường được trừ khi bạn có một môi trường "hoàn hảo" dành riêng cho việc phân tích cú pháp PHP và rất nhiều yêu cầu với các tham số khác nhau. Nhưng phải có một sự khác biệt, xét cho cùng, PHP là một ngôn ngữ được diễn giải.

53 hữu ích 4 bình luận chia sẻ

answer

39

Hướng dẫn php die vs exit

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

chết - tương đương để thoát

Bạn thậm chí có thể làm die;theo cách tương tự exit;- có hoặc không có parens.

Ưu điểm duy nhất của việc chọn die()qua exit(), có thể là thời gian bạn rảnh rỗi khi gõ thêm một chữ cái ;-)

39 hữu ích 1 bình luận chia sẻ

answer

27

Hướng dẫn php die vs exit

Như tất cả các câu trả lời đúng khác nói, dieexitgiống hệt nhau / bí danh.

Mặc dù tôi có một quy ước cá nhân rằng khi tôi muốn kết thúc việc thực thi một kịch bản khi nó được mong đợi và mong muốn, tôi sử dụng exit;. Và khi tôi cần kết thúc thực thi do một số vấn đề (không thể kết nối với db, không thể ghi vào tệp, v.v.), tôi sử dụng die("Something went wrong.");để "giết" tập lệnh.

Khi tôi sử dụng lối ra:

header( "Location: http://www.example.com/" ); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit; // I would like to end now.

Khi tôi sử dụng chết:

$data = file_get_contents( "file.txt" );
if( $data === false ) {
    die( "Failure." ); // I don't want to end, but I can't continue. Die, script! Die!
}
do_something_important( $data );

Bằng cách này, khi tôi thấy exittại một số điểm trong mã của mình, tôi biết rằng tại thời điểm này tôi muốn thoát vì logic kết thúc ở đây. Khi tôi thấy die, tôi biết rằng tôi muốn tiếp tục thực hiện, nhưng tôi không thể hoặc không nên do lỗi trong lần thực hiện trước.

Tất nhiên điều này chỉ hoạt động khi làm việc trên một dự án một mình. Khi có nhiều người hơn, không ai sẽ ngăn họ sử dụng diehoặc exitnơi không phù hợp với quy ước của tôi ...

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

answer

11

Hướng dẫn php die vs exit

Trang này nói dielà đồng minh của nhau exit, vì vậy chúng giống hệt nhau. Nhưng cũng giải thích rằng:

có những chức năng thay đổi tên vì dọn dẹp API hoặc một số lý do khác và tên cũ chỉ được giữ làm bí danh cho khả năng tương thích ngược. Thường là một ý tưởng tồi khi sử dụng các loại bí danh này, vì chúng có thể bị ràng buộc với lỗi thời hoặc đổi tên, điều này sẽ dẫn đến kịch bản không thể truy cập được.

Vì vậy, hãy gọi tôi là hoang tưởng, nhưng có thể không có dieing trong tương lai.

11 hữu ích 5 bình luận chia sẻ

answer

7

Hướng dẫn php die vs exit

Đây là một cái gì đó khá thú vị. Mặc dù exit()die()là tương đương, exit() đóng kết nối. die() không đóng kết nối.

exit():

php
    header('HTTP/1.1 304 Not Modified');
    exit();
?>

die():

php
    header('HTTP/1.1 304 Not Modified');
    die();
?>

Các kết quả:

exit():

HTTP/1.1 304 Not Modified 
Connection: Keep-Alive 
Keep-Alive: timeout=5, max=100

die():

HTTP/1.1 304 Not Modified 
Connection: close

Chỉ cần thực hiện cần phải tính đến điều này cho dự án của bạn.

Tín dụng: https://stackoverflow.com/a/20932511/4357238

7 hữu ích 1 bình luận chia sẻ

answer

6

Hướng dẫn php die vs exit

Chúng cơ bản giống nhau, mặc dù bài viết này đề xuất khác.

6 hữu ích 2 bình luận chia sẻ

answer

6

Hướng dẫn php die vs exit

Kết quả đầu ra từ https://3v4l.org này chứng minh rằng die và exit giống nhau về mặt chức năng.

Hướng dẫn php die vs exit

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

answer

4

Hướng dẫn php die vs exit

Về mặt chức năng, chúng giống hệt nhau nhưng tôi sử dụng chúng trong các tình huống sau để làm cho mã có thể đọc được:

Sử dụng "die" khi có lỗi và phải dừng thực thi.

ví dụ die( 'Oops! Something went wrong' );

Sử dụng "thoát" khi không có lỗi và phải dừng thực thi.

ví dụ exit( 'Request has been processed successfully!' );

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

answer

1

Hướng dẫn php die vs exit

Khi sử dụng dòng lệnh,

 die("Error");

Sẽ in thành "Lỗi" thành STDOUT và thoát với mã lỗi 0.

nếu bạn muốn thoát với mã lỗi 1, bạn phải:

  fwrite(STDERR, "Error");
    exit(1);

Nó có thể hữu ích trong khi thực thi các tập lệnh php từ dòng lệnh hoặc tập lệnh shell và bạn muốn xem tập lệnh có bị chấm dứt với mã thoát không không. câu trả lời sao chép của charanjeet từ Quora

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

answer

0

Hướng dẫn php die vs exit

Từ những gì tôi biết khi tôi nhìn vào câu hỏi này ở đây

Nó nói rằng "trong PHP, có một sự khác biệt rõ ràng trong đầu ra Header. Trong các ví dụ bên dưới, tôi đã chọn sử dụng một tiêu đề khác nhưng để hiển thị sự khác biệt giữa exit () và die () không quan trọng", và thử nghiệm (cá nhân)

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

answer

0

Hướng dẫn php die vs exit

die () và exit () cả hai hàm đều tương đương với nhau. Sự khác biệt chính là exit () sẽ dừng tập lệnh nhưng in ra. Nhưng die () trực tiếp dừng việc thực thi kịch bản.

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

answer

1

Hướng dẫn php die vs exit

Về mặt chức năng, chúng giống hệt nhau. Vì vậy, để chọn cái nào để sử dụng hoàn toàn là một sở thích cá nhân. Về mặt ngữ nghĩa trong tiếng Anh, chúng khác nhau. Chết nghe có vẻ tiêu cực. Khi tôi có một hàm trả về dữ liệu JSON cho máy khách và chấm dứt chương trình, thật tệ nếu tôi gọi hàm này là jsonDie () và thích hợp hơn để gọi nó là jsonExit (). Vì lý do đó, tôi luôn sử dụng lối ra thay vì chết.

1 hữu ích 4 bình luận chia sẻ

answer

3

Hướng dẫn php die vs exit

Trong w3schools Quiz: Các hàm die () và exit () thực hiện chính xác điều tương tự? Câu trả lời của tôi là sai. Đó là câu trả lời không chính xác. Câu trả lời đúng là đúng.

Đây là ảnh chụp màn hình:

Hướng dẫn php die vs exit

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

answer

3

Hướng dẫn php die vs exit

Kết quả của hàm exit () và hàm die () đều giống nhau. Nhưng như được giải thích trong trang hướng dẫn bí danh ( http://php.net/manual/en/aliases.php ), nó nói rằng hàm die () gọi hàm thoát. Tôi nghĩ rằng nó được mã hóa cứng như dưới đây:

function die($msg){
  exit($msg);
}

Đây không phải là vấn đề hiệu suất cho các dự án nhỏ, vừa và lớn nhưng nếu dự án có hàng tỷ tỷ tỷ tỷ tỷ nhân, thì điều này xảy ra rất quan trọng trong trạng thái tối ưu hóa hiệu suất.

Nhưng hầu hết mọi người không nghĩ rằng đây là một vấn đề, bởi vì nếu bạn có quá trình đó, bạn phải nghĩ nhiều vấn đề hơn là nếu một chức năng là chủ hoặc bí danh.

Nhưng, câu trả lời chính xác là vậy; allways chức năng tổng thể là nhanh hơn bí danh.

Cuối cùng; Trang hướng dẫn bí danh nói rằng, bạn có thể không còn sử dụng die. Nó chỉ là một bí danh, và nó không được dùng nữa.

Thường là một ý tưởng tồi khi sử dụng các loại bí danh này, vì chúng có thể bị ràng buộc với lỗi thời hoặc đổi tên, điều này sẽ dẫn đến kịch bản không thể truy cập được. Danh sách này được cung cấp để giúp những người muốn nâng cấp tập lệnh cũ của họ thành cú pháp mới hơn.

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

answer

4

Hướng dẫn php die vs exit

Một cái gì đó tôi đã nhận thấy trong các tập lệnh của mình ít nhất là exit () sẽ dừng tập lệnh hiện đang thực thi và chuyển điều khiển trở lại bất kỳ tập lệnh gọi nào, trong khi die sẽ dừng php trong các bài hát của nó. Tôi sẽ nói rằng đó là một sự khác biệt khá lớn?

4 hữu ích 1 bình luận chia sẻ