ID: 37776 Updated by: [EMAIL PROTECTED] Reported By: karibu at gmx dot net -Status: Closed +Status: Open Bug Type: Documentation problem Operating System: MacOS X, MorphOS PHP Version: Irrelevant Assigned To: colder New Comment:
I reopen this bug as a consequence of Sean's comment (thanks for it). Will fix that ASAP. Previous Comments: ------------------------------------------------------------------------ [2006-06-11 08:53:48] [EMAIL PROTECTED] This bug has been fixed in the documentation's XML sources. Since the online and downloadable versions of the documentation need some time to get updated, we would like to ask you to be a bit patient. Thank you for the report, and for helping us make our documentation better. I believe it can't hurt anybody. http://patches.colder.ch/constants-1.43.patch?markup ------------------------------------------------------------------------ [2006-06-10 23:55:08] karibu at gmx dot net same happens w/o the exit too. anyway... of course I expect a different result in that case. It's very confusing for (e.g.) c programmers where that works just fine: int main(void) { printfoobar(); return 0; } #define FOO "bar" void printfoobar() { printf(FOO); } So it should be documented IMHO... a small extra sentence in the documentation doesn't hurt.. I think ;) ------------------------------------------------------------------------ [2006-06-10 23:27:16] [EMAIL PROTECTED] Would you expect this to work different somehow? <?php printfoobar(); exit; $FOO = 'bar'); function printfoobar() { echo $GLOBALS["FOO"]; } ?> I would not. Not only did you call the function before the define, but you exit() before the define. There is no way that is getting defined. ------------------------------------------------------------------------ [2006-06-10 23:12:17] karibu at gmx dot net Description: ------------ When I *call* a function which uses a define before this define is actually defined in the source it appears in the function to be undefined. I didn't found this behavoir documented (not in the english or german section) but it would probably very useful as it quickly can lead to unexpected problems w/o instantly possible to detect why (in a script of mine it caused busylooping f.ex.). Reproduce code: --------------- <?php printfoobar(); exit; define(FOO, 'bar'); function printfoobar() { echo FOO; } ?> Expected result: ---------------- bar Actual result: -------------- FOO ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=37776&edit=1