ID: 44782
User updated by: deleet at sapo dot pt
Reported By: deleet at sapo dot pt
Status: Verified
Bug Type: Class/Object related
Operating System: Fedora 6
PHP Version: 5.3CVS-2008-04-19 (snap)
New Comment:
Very well, dynamic referencing it is then :)
Thank you for the quick reply, is it possible to get an ETA on the fix?
Previous Comments:
------------------------------------------------------------------------
[2008-04-19 21:43:26] [EMAIL PROTECTED]
This isn't late static bindings, but it's indeed a bug, probably
relying on the fact that Testing::$func(); would have been rewritten in
compile time.
------------------------------------------------------------------------
[2008-04-19 18:34:31] deleet at sapo dot pt
Description:
------------
Possible problem with the implementation of namespaces and late static
binding.
Reproduce code:
---------------
<?php
namespace Something;
class Testing {
function __construct() {
}
static function stuff() {
echo 'I work!' . "<br />\n";
}
}
Testing::stuff();
$var = 'Testing'; $func = 'stuff';
// No effect: use Something;
$var::$func();
?>
Expected result:
----------------
Output:
------------------
I work!
I work!
Actual result:
--------------
Output:
------------------
I work!
Fatal error: Class 'Testing' not found in //file url// on line 20
------------------
PHP is not looking for the class inside the defined namespace when
using late static binding. It works if I use $var =
'Something::Testing'; but that's not indented behaviour. Also, using the
namespace seems to have no effect.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=44782&edit=1