2012-09-22 48 views
7

Tôi có hai tập tin: first.php:exit() với thông điệp và khác không thoát tình trạng

#!/usr/bin/php 
<?php 
exit("Unable"); //1 
#exit(1); //2 
#exit(); //or exit(0) //3 
?> 

second.php:

#!/usr/bin/php 
<?php 
exec("./first.php",$out,$err); 
var_dump($out); 
echo "\n".$err; 
?> 

Bây giờ, khi tôi chạy second.php với dòng # 1 trong first.php tôi có "Không thể" trong $ out và 0 trong $ err. nhưng với hai lối thoát khác, tôi có chữ số đó bằng $ err.
Làm cách nào tôi có thể có số không bằng $ err khi tôi thực hiện thoát với thông báo chuỗi?
Tôi đã thử nghiệm 2> & 1 nhưng vô dụng.

Trả lời

9
exit("hi"); 

là giống như:

echo "hi"; 
exit(0); 

Vì vậy, chỉ echo tuyên bố :)

echo "Unable"; 
exit(2); 
+1

Tôi nghĩ giống như bạn – Farhadix

0

Bạn không thể có mã thoát chuỗi. Mã thoát chỉ là số nguyên.

+0

Tôi có nên định nghĩa một hàm personal_exit và tại lỗi in đầu tiên và sau khi thoát mà với non-zero trạng thái? Đây có phải là cách duy nhất không? – Farhadix

+0

@Farhadix, Vâng, chính xác. – Brad

0

Bạn có thể thoát bằng thông báo chuỗi và sẽ in ra trên đầu ra tiêu chuẩn, nhưng đối với mã thoát, đó là số nguyên và chuỗi sẽ được chuyển thành 0 là mã thoát thành công.

0

Bạn thậm chí có thể gọi một chức năng khi thoát.

function execute() { echo "whatever"; } 
    exit(execute()); 
0

Bạn cũng có thể sử dụng die("Unable");

+0

Có 'chết' thoát với' 1' nếu bạn cho nó tham số chuỗi không? – Titus

Các vấn đề liên quan