2012-09-22 110 views
7

我有兩個文件: first.php:退出()的消息和非零退出狀態

#!/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; 
?> 

現在,當我運行second.php在first.php中有#1行,我在$ out中有「Unable」,在$ err中有0。但是另外兩個出口我有$ err那個數字。
當我使用字符串消息執行退出時,如何在$ err中有非零值?
我已經測試過2> & 1,但沒用。

回答

9
exit("hi"); 

是一樣的:

echo "hi"; 
exit(0); 

所以才呼應聲明:)

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

我覺得你喜歡 – Farhadix

0

您不能有字符串退出代碼。退出代碼只是整數。

+0

我應該定義一個personal_exit功能,並在第一次印刷錯誤和非零狀態是退出後?這是唯一的方法嗎? – Farhadix

+0

@ Farhadix,是的,確切地說。 – Brad

0

您可以使用字符串消息退出,並將其打印在標準輸出中,但對於退出代碼,這是一個整數,字符串將被轉換爲0,這是一個成功的退出代碼。

0

退出時,你甚至可以調用一個函數。

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

您還可以使用die("Unable");

+0

如果你給它一個字符串參數,'die'是否會退出'1'? – Titus

相關問題