Re: Bug #11008 Updated: exit() should return an exit status if passed, not send to stdout
| From: | Jason Greene | Date: | Tue, 17 Jul 2001 17:50:11 +0000 |
| Subject: | Re: Bug #11008 Updated: exit() should return an exit status if passed, not send to stdout | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-60174@lists.php.net to get a copy of this message | ||
Zeev,
> New Comment:
>
> Simply put - no, it should not.
>
> exit's optional argument is a termination message, not a shell status.
Actually, if exit's argument is of type long, then the status is set. I think that since we
support this functionality
echoing the status code doesn't make much sense.
To make matters more confusing, the documentaion incorrectly states that die prints a termination
message,
and that exit sets a status code. I actually agree with seperating die and exit, but I realize this
could cause
backwards compatibility issues. So IMHO, I see 2 possible fixes
1. ) Seperate die, exit, and implement them as the php manual states
2. ) Modify the condition of exits param being a long to not print the message
ie
ptr = get_zval_ptr(&opline->op1, Ts,
&EG(free_op1), BP_VAR_R);
if (Z_TYPE_P(ptr) == IS_LONG) {
EG(exit_status) = Z_LVAL_P(ptr);
} else zend_print_variable(ptr);
FREE_OP(&opline->op1, EG(free_op1));
-Jason
> Previous Comments:
> ------------------------------------------------------------------------
>
> [2001-05-23 11:24:22] brianlmoon@php.net
>
> 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-05-22 01:59:53] bbonev@php.net
>
> indeed it does both:
>
> if php; then echo yes; fi
> <? exit(0) ?>
> X-Powered-By: PHP/4.0.5
> Content-type: text/html
>
> 0yes
>
> if php; then echo yes; fi
> <? exit(1) ?>
> X-Powered-By: PHP/4.0.5
> Content-type: text/html
>
> 1
>
> i don't see a real reason for the echoed exit status though
>
> ------------------------------------------------------------------------
>
> [2001-05-21 21:34:23] brianm@dealnews.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.
>
> ------------------------------------------------------------------------
>
>
>
> Edit this bug report at
> http://bugs.php.net/?id=11008&edit=1
>
>
> --
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net
> For additional commands, e-mail: php-dev-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net
>
>