I guess I do not understand. The following example works just fine in PHP 4.1.0RC1:
test.php ===== <?php include 'testlib.php'; include 'testlib.php'; test(); ?> testlib.php ====== <?php if (!defined('_TESTLIB_PHP')) { define ('_TESTLIB_PHP', 1); function test() { print "Function test()\n"; } } ?> This however does not work and IMHO should not work. (It did work on PHP 4.0.6) testlib.php ====== <?php if (!defined('_TESTLIB_PHP')) { define ('_TESTLIB_PHP', 1); return; } function test() { print "Function test()\n"; } ?> The second example utilises the fact that the script compiling stoped at return, while now it does not. I really fail to see what's wrong with using the first example and how that cannot be used for preventing multiple function definitions. Edin > It is valid in the sense that the code would not be executed the second > time, but it isn't valid for preventing multiple function definitions > inside that block. ie. no conditional function definitions. > > -Rasmus > > On Fri, 19 Oct 2001, Edin Kadribasic wrote: > > > > Since you can no longer do: > > > > > > if(!defined(_FOO_INC)): > > > define('_FOO_INC',1); > > > > > > ... > > > > > > endif; > > > > > > to protect a file from multiple inclusion within the file itself, some > > > > This is still a valid construct. I could find nothing in the discussion that > > would indicate otherwise. The only thing that does not work now, and it did > > before was: > > > > if(!defined(_FOO_INC)): > > define('_FOO_INC',1); > > return; > > endif; > > ... > > ... > > > > > > > > > > > -- 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]