RE: [PHP-QA] Re: RC6 doesn't mind function redefinition

From: Date: Tue, 03 Apr 2001 20:02:34 +0000
Subject: RE: [PHP-QA] Re: RC6 doesn't mind function redefinition
References: 1 2  Groups: php.qa 
Request: Send a blank email to php-qa+get-2750@lists.php.net to get a copy of this message
Ahem, err, turns out it actually does issue a redeclaration fatal error... It wasn't visible because of its position in the output. Sorry to everyone. Anyway, shouldn't PHP terminate the script during compilation? I thought function redeclarations were compile errors, but it looks as if they're runtime errors, and the whole script got executed(?). At 21:53 3.4. 2001, James Moore" , <php-qa@lists.php.net> wrote the following: -------------------------------------------------------------- >I just tried a simple script similar to yours, and it really >bails out. But in a larger one it happily goes on: > >function get_defined_functions() >{ > (...) >} > >lines 125 - 129: > >$funcs = get_defined_functions() ; >#print_r( $funcs ) ; exit ; ># variable name may be the same as a function name, make sure they don't mix >$pat = preg_replace( '~^\.*$~' , '~(?<=\W)(?<!\$)$0\b~i' , $funcs ) ; >$code = preg_replace_callback( $pat , 'func' , $code ) ; > >output: > >Warning: Array to string conversion in ... on line 128 >Warning: Array to string conversion in ... on line 128 >Warning: Delimiter must not be alphanumeric or backslash in ... on line 129 >Warning: Delimiter must not be alphanumeric or backslash in ... on line 129 >Warning: Array to string conversion in ... on line 128 >Warning: Array to string conversion in ... on line 128 >Warning: Delimiter must not be alphanumeric or backslash in ... on line 129 >Warning: Delimiter must not be alphanumeric or backslash in ... on line 129 > >As you can see, no fatal error. The warnings are due to the >fact that the $func array now differs from what func() expects. > >FWIW, this is on NT 5. I'll try to cut the script down to a >smallest possible one, and post it (the actual code uses MySQL). > >I am ABSOLUTELY sure I haven't misspelled the function name. > >At 21:36 3.4. 2001, James Moore wrote the following: >-------------------------------------------------------------- > >>> FWIW the builtin get_defined_functions() is executed. >>> >>> >I think this is a showstopper. >>> > >>> >I just realized I redefined get_defined_functions(), and >>> >RC6 doesn't complain. With error_reporting( E_ALL ) !!! >>> > >>> >4.0.4pl1 exits the script with fatal error. >> >>for: >>===== test.php ===== >><?php >> >>function get_defined_functions() { >>echo "blaf"; >>} >> >>echo print_r(get_defined_functions()); >>?> >>===================== >>I get: >>Fatal error: Cannot redeclare get_defined_functions() in >>D:\webroot2\test.php on line 3 >> >>sure you didnt misspell your function.. it works fine for me. >> >>-James >> >> >>-- >>PHP Quality Assurance Mailing List >><http://www.php.net/> >>To unsubscribe, e-mail: php-qa-unsubscribe@lists.php.net >>For additional commands, e-mail: php-qa-help@lists.php.net >>To contact the list administrators, e-mail: php-list-admin@lists.php.net >------end of quote------ > >cynic@mail.cz >------------- >And the eyes of them both were opened and they saw that their files >were world readable and writable, so they chmoded 600 their files. > - Book of Installation chapt 3 sec 7 ------end of quote------ cynic@mail.cz ------------- And the eyes of them both were opened and they saw that their files were world readable and writable, so they chmoded 600 their files. - Book of Installation chapt 3 sec 7

« previous php.qa (#2750) next »