2009-05-21 36 views
5

trong PHP Có die() trả lại bất kỳ điều gì khi chúng tôi sử dụng không?PHP chết() trả lại

+0

Bằng ngôn ngữ nào? – kquinn

+0

Tôi nghi ngờ php, vì nó có hàm đó, đó là bí danh cho exit(). Tôi cũng nghi ngờ rằng nó sẽ không trả lại bất cứ điều gì, kể từ khi nó thoát khỏi kịch bản, nhưng kể từ khi tôi không có lập trình php tôi chỉ cần thêm bình luận này. –

+2

nó không trả về gì cả. Nhưng ngay cả khi nó trả về một cái gì đó, cái gì đó vẫn không thể được sử dụng cho không có gì, kể từ khi kịch bản được bỏ. – andyk

Trả lời

22

Trong PHP hàm die() chỉ cần bỏ chạy kịch bản và in ra đối số (nếu có).

http://php.net/die

+4

Điều này không hoàn toàn chính xác.Nếu die() được gọi với một đối số nguyên, nó trả về giá trị đó. Trong ngữ cảnh web, điều này có thể không có ý nghĩa nhiều. Trong một kịch bản lệnh PHP của CLI, giá trị trả về đó có ý nghĩa; nó có sẵn để sử dụng trong trình bao. –

10

Tại sao bạn không xem tài liệu tuyệt vời về PHP? Tài khoản thậm chí còn chứa thông tin về die()

+7

Anh chàng tội nghiệp. Anh ta sẽ phải nhấn * lần nữa * để xem exit() nào trả về. Spoiler: câu trả lời là void – Stephan202

+0

tôi đã kiểm tra nhưng vẫn muốn hỏi câu hỏi đó ở đây như tôi đã không chắc chắn rằng bất cứ điều gì tôi đã đọc là đúng sự thật. – developer

+2

Tài liệu php là * địa điểm * để tìm những thứ như vậy. Không có gì có thể được truer hơn thông tin ở đó, ngoại trừ nó là một lỗi tài liệu (nhưng nếu bạn muốn được * rằng * chắc chắn kiểm tra tốt hơn hệ thống theo dõi lỗi của php và/hoặc chạy một mã kiểm tra). Nhân tiện: Kể từ khi die() kết thúc việc thực hiện PHP, nó là khá không thích hợp, giá trị trả về là gì (vì chương trình dừng tại điểm đó). – soulmerge

1

Nó không trả lại. Kịch bản được chấm dứt và không có gì khác được thực hiện.

1

Không có lý do để trở lại một cái gì đó trong khuôn/thoát. Chức năng này chấm dứt quá trình thông dịch php bên trong và trả về exit-code để shell. Vì vậy, sau khi gọi die() không có kịch bản thực hiện như xa như không có quá trình thông dịch mà thực hiện các kịch bản và đó là lý do tại sao không có cách nào để xử lý trở lại của chức năng.

8

Rõ ràng, die() hoặc tương đương exit() không trả lại bất kỳ điều gì cho chính tập lệnh; để được chính xác, mã này không có ý nghĩa nhiều:

if (die())) { 
    echo 'are we dead yet?'; 
} 

Tuy nhiên, tùy thuộc vào những gì bạn vượt qua như (không bắt buộc) đối số của die() hoặc exit(), nó không trở lại một cái gì đó cho người gọi, tức là lệnh đã khiến tập lệnh của bạn chạy. Việc sử dụng thực tế của nó thường chỉ giới hạn ở số cli SAPI, khi bạn gọi kịch bản lệnh từ một dòng lệnh bằng cách sử dụng php /path/to/script.php.

Quan sát:

die('goodbye cruel world'); 

Mã này sẽ in goodbye cruel world và sau đó trả về một exit status code của 0, báo hiệu cho người gọi rằng quá trình này kết thúc bình thường.

Một ví dụ khác:

die(1); 

Khi bạn vượt qua một giá trị số nguyên thay vì một chuỗi, không có gì được in và mã trạng thái thoát sẽ 1, báo hiệu cho người gọi rằng quá trình này không chấm dứt bình thường.

Cuối cùng, die() mà không có bất kỳ đối số nào giống như die(0).

Trạng thái thoát của quy trình có thể được thay đổi để báo hiệu các loại lỗi khác nhau có thể đã xảy ra, ví dụ: 1 có nghĩa là lỗi chung, 2 có nghĩa là tên người dùng không hợp lệ, v.v.