Bug #17078 Updated: return does not terminate included script
| From: | kevin dot laushway at nlc-bnc dot ca | Date: | Wed, 08 May 2002 13:22:43 +0000 |
| Subject: | Bug #17078 Updated: return does not terminate included script | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-7232@lists.php.net to get a copy of this message | ||
ID: 17078
Updated by: kevin.laushway@nlc-bnc.ca
Reported By: kevin.laushway@nlc-bnc.ca
-Status: Feedback
+Status: Open
Bug Type: Scripting Engine problem
Operating System: Dec Alpha OSF1 v5.1
PHP Version: 4.2.0
New Comment:
I upgraded apache to 1.3.24 and the problem is resolved.
Previous Comments:
------------------------------------------------------------------------
[2002-05-07 15:06:14] mfischer@php.net
Thanks, please also try the cgi version.
------------------------------------------------------------------------
[2002-05-07 15:03:26] kevin.laushway@nlc-bnc.ca
After futher investigation it seems only to happen with a when running
under apache (version 1.3.22). I'm installing a later version of
apache. I will continue with my investigation.
------------------------------------------------------------------------
[2002-05-07 14:57:41] mfischer@php.net
I'm unable to reproduce this on linux:
$ cat a.php
<?
echo "In file a\n";
$include = include 'b.php';
echo "In file a, after file b returned\n";
?>
$ cat b.php
<?
echo "In file b\n";
return;
echo "Still in file b\n";
?>
$ php-4.0.6 -f a.php
In file a
In file b
In file a, after file b returned
$ php-4.2.1RC2 -f a.php
In file a
In file b
In file a, after file b returned
Can someone test this with those version on win32?
Could this by chance be a configuration issue of your php installation?
------------------------------------------------------------------------
[2002-05-07 13:39:26] kevin.laushway@nlc-bnc.ca
A return does not terminate execution of included script.
For Example;
parent.php
<?php
echo "Starting Parent\n";
$m_return = include('./child.php');
echo "Back from Child, return code $m_return\n";
?>
child.php
<?php
echo "Starting Child\n";
return; // this should terminate script
echo "What the heck? I'm still in child\n";
?>
I expect the script to terminate at the return, and "what the heck..."
would never be printed. This functioned as expected in previous
versions. i.e. 4.0.6
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=17078&edit=1