#20924 [NEW]: Functions inside declare(ticks=1) cannot be used prior to definition
| From: | a_villacis at palosanto dot com | Date: | Tue, 10 Dec 2002 19:38:41 +0000 |
| Subject: | #20924 [NEW]: Functions inside declare(ticks=1) cannot be used prior to definition | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-27286@lists.php.net to get a copy of this message | ||
From: a_villacis@palosanto.com
Operating system: Linux 2.4.7-10
PHP version: 4.3.0RC2
PHP Bug Type: Scripting Engine problem
Bug description: Functions inside declare(ticks=1) cannot be used prior to definition
My configuration (as reported by phpinfo()):
./configure --with-apxs=/opt/httpd/bin/apxs
--with-mysql=/usr --with-gd
--with-curl=/opt/curl-7.10.1/
--with-pdflib=/opt/pdflib/
--with-zlib --enable-inline-optimizations
--enable-pcntl --enable-dio --with-ncurses
--enable-sockets
What I did (filename 'ticks_bug_php'):
--------------- CUT HERE --------------------
#!/usr/local/bin/php
<?php
function predefined_out()
{
echo "Inside predefined_out()\n";
}
predefined_out();
postdefined_out();
function postdefined_out()
{
echo "Inside postdefined_out()\n";
}
declare(ticks = 1)
{
function predefined_in()
{
echo "Inside predefined_in()\n";
}
predefined_in();
postdefined_in();
function postdefined_in()
{
echo "Inside postdefined_in()\n";
}
}
?>
--------------- CUT HERE --------------------
What I expected:
[avillaci@srv64 practica]$ ./ticks_bug_php
Inside predefined_out()
Inside postdefined_out()
Inside predefined_in()
Inside postdefined_in()
[avillaci@srv64 practica]$
What I got instead:
[avillaci@srv64 practica]$ ./ticks_bug_php
Inside predefined_out()
Inside postdefined_out()
Inside predefined_in()
Fatal error: Call to undefined function: postdefined_in()
in /home/avillaci/programa/practica/ticks_bug_php on line
25
[avillaci@srv64 practica]$
PHP refuses to call postdefined_in() before its definition
inside the scope of 'declare(ticks=1){}', but has no problem
calling postdefined_out() before its definition, outside
the scope of 'declare(ticks=1){}'.
Any hints in solving this issue will be greatly appreciated.
Alex Villacis Lasso
a_villacis@palosanto.com
--
Edit bug report at http://bugs.php.net/?id=20924&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=20924&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=20924&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=20924&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=20924&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=20924&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=20924&r=support
Expected behavior: http://bugs.php.net/fix.php?id=20924&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=20924&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=20924&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=20924&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=20924&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=20924&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=20924&r=isapi