A small example which shows that BC seems to be broken for a
certain (but not uncommon) case:
cat include_me.php
<?
if (!defined('I_AM_INCLUDED')) {
define('I_AM_INCLUDED', 1);
} else {
echo "returning<br>\n";
return;
}
function cant_be_redefined() {
}
?>
cat include_it.php
<?
echo "1<br>\n";
include 'include_me.php';
echo "2<br>\n";
include 'include_me.php';
echo "3<br>\n";
?>
Now run include_it.php (it doesn't matter if its CGI or
module):
On PHP 4.0.4pl1 up to 4.0.6 this gives:
1<br>
2<br>
returning<br>
3<br>
But now I get:
1<br>
2<br>
<br />
Fatal error - Cannot redeclare cant_be_redefined()
(previously declared in include_me.php:9)
[I shortened the error message to be more readable]
If this is 'now the way it is' this should be mentioned
somewhere very clearly I think. Doesn't seem to be fixable in
some way? Couldn't find a reference to it e.g. in the NEWS
file.
I know that there should be used include_once() but
I'm talking about existing code writing that way which
definitely won't work without modifications.
- Markus
ps: thanks to Jan for verifying this!
--
Please always Cc to me when replying to me on the lists.
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]