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

Reply via email to