Throw Question

php.internals

Jason Garber

22 years ago
Consider the following: $x = FALSE; $x || throw new exception('Some Assertion'); I get the following Parse Error: error: parse error, unexpected T_THROW in /home/.../Z_Record.php on line 153 However, this code produces no errors.. $x = FALSE; $x || exit; Why is this? Thanks, Jason Garber

Antony Dovgal

22 years ago
On Thu, 17 Jun 2004 02:17:26 -0400 Jason Garber <jason@ionzoft.com> wrote:
> Consider the following: > Why is this?
Take a look at the bug #28727: http://bugs.php.net/?id=28727 --- WBR, Antony Dovgal aka tony2001 tony2001@phpclub.net || antony@dovgal.com

Jason Garber

22 years ago
That's what I figured. throw is a language construct. However, from the manual (http://php.net/exit): void exit ( int status) Note: This is not a real function, but a language construct. Why does $x || exit; work without a parse error? Thanks, Jason Garber At 6/17/2004 10:22 AM +0400, Antony Dovgal wrote:

Joseph Lee

22 years ago
I guess "exit();" terminates execution within itself without returning to the caller, so that is no chance of getting a runtime error. For example, " return ( exit() ); " is wrong, but works. Joe Lee -----Original Message----- From: Jason Garber [mailto:jason@ionzoft.com] Sent: Thursday, June 17, 2004 7:34 AM To: internals@lists.php.net Subject: Re: [PHP-DEV] Throw Question That's what I figured. throw is a language construct. However, from the manual (http://php.net/exit): void exit ( int status) Note: This is not a real function, but a language construct. Why does $x || exit; work without a parse error? Thanks, Jason Garber At 6/17/2004 10:22 AM +0400, Antony Dovgal wrote:
>On Thu, 17 Jun 2004 02:17:26 -0400 >Jason Garber <jason@ionzoft.com> wrote: > > > Consider the following: > > Why is this? > >Take a look at the bug #28727: >http://bugs.php.net/?id=28727 > >--- >WBR, >Antony Dovgal aka tony2001 >tony2001@phpclub.net || antony@dovgal.com > >-- >PHP Internals - PHP Runtime Development Mailing List >To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php

Hartmut Holzgraefe

22 years ago
Joseph Lee wrote:
> I guess "exit();" terminates execution within itself without returning > to the caller, so that is no chance of getting a runtime error.
parse error != runtime error but language constructs like exit, unset and print are especialy ment to be as function-like as possible, thats why you can use them in expressions ...
-- Hartmut Holzgraefe <hartmut@php.net>

Jason Garber

22 years ago
Thanks for the good explanation. ~Jason At 6/17/2004 02:10 PM +0200, Hartmut Holzgraefe wrote: