Re: Handling exit in eval
| From: | Richard Quadling | Date: | Mon, 14 Mar 2011 11:36:54 +0000 |
| Subject: | Re: Handling exit in eval | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-311828@lists.php.net to get a copy of this message | ||
2011/3/14 Thomas Björk <tb@bytecode.se>:
> Is there any way to emulate an exit in eval without exiting the calling
> script.
>
> <?php
> $s = 'echo "Shows"; exit; echo "Doesn\'t show"; ';
> eval($s);
> echo "Never comes here";
> ?>
>
>
> I would like to do something like this:
> <?php
> $s = 'echo "Shows"; exit; echo "Doesn\'t show"; ';
>
> function MakeItStop() {
> // Do something to make the eval stop
> // without halting the script
> }
>
> $s = str_replace('exit;', 'MakeItStop();', $s);
>
> eval($s);
> echo "Never comes here";
> ?>
>
>
> A simple return would fix it IF the return isn't located within a
> function.
>
>
> Any good suggestions?
>
> Thanks in advanced
> Thomas Björk
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
Can you provide a more realistic example?
Just don't code anything after the last line of code that contains the
exit? Surely.
http://uk.php.net/manual/en/function.eval.php
does say that ...
"A return statement will immediately terminate the evaluation of the string ."
So, there's your answer I suppose.
Replace "exit" with "return".
--
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY