|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #11008 exit() should return an exit status if passed, not send to stdout
Submitted: 2001-05-21 21:34 UTC Modified: 2002-01-06 08:50 UTC
From: brianm at dealnews dot com Assigned:
Status: Closed Package: Scripting Engine problem
PHP Version: 4.0 Latest CVS (2001-05-21) OS: Linux
Private report: No CVE-ID: None
 [2001-05-21 21:34 UTC] brianm at dealnews dot com
Working with a shell script here.  I hoped that exit() would work like perl and return the passed status as and exist status.  As it stands now, it sends it to stdout.  This is unexpected.

It would be much more useful if exit() could be used to enable the use of PHP in shell scripts by returning the passed value as an exit status.


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2001-05-22 01:59 UTC]
indeed it does both:

if php; then echo yes; fi
<? exit(0) ?>
X-Powered-By: PHP/4.0.5
Content-type: text/html


if php; then echo yes; fi
<? exit(1) ?>
X-Powered-By: PHP/4.0.5
Content-type: text/html


i don't see a real reason for the echoed exit status though
 [2001-05-23 11:24 UTC]
Anyone in the Zend core want to comment on this?  I know where the code is that does it.  But it is in the Zend code.

Is there a good reason to put this exit status to stdout?
 [2001-07-15 16:43 UTC]
Simply put - no, it should not.

exit's optional argument is a termination message, not a shell status.
 [2001-12-06 17:02 UTC]
I just got bitten by this. The manual page says that if the value passed
to exit() is integer it is used as exit status.

Or is there some other way to exit from PHP script with an exit status?


 [2002-01-06 08:50 UTC]
Fixed in CVS (integer values aren't printed to stdout anymore).
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Fri Jan 28 00:03:34 2022 UTC