2012-09-22 86 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

相关问题