Edit report at https://bugs.php.net/bug.php?id=65560&edit=1
ID: 65560 Updated by: ni...@php.net Reported by: codronm+circlecode at gmail dot com Summary: defined and constant does not resolve use aliases -Status: Open +Status: Not a bug Type: Bug Package: Scripting Engine problem Operating System: linux PHP Version: 5.5.3 Block user comment: N Private report: N New Comment: Names in strings always need to be fully qualified. Aliases do not apply to them. (And they can't, because aliases are local to the file, but the string with the name can be used completely elsewhere.) Previous Comments: ------------------------------------------------------------------------ [2013-08-26 14:09:11] codronm+circlecode at gmail dot com Sorry, I have inverted Expected result and actual result⦠I don't know how to edit this ------------------------------------------------------------------------ [2013-08-26 13:56:49] codronm+circlecode at gmail dot com Description: ------------ while var_dump resolves correctly aliases defines by the use keyword, defined and constant functions does not resolve it. Test script: --------------- <?php namespace Foo; class Bar { const baz = 'baz'; } function test($const){ if(defined($const)){ echo "$const value is ". constant($const) . "\n"; } else { echo "$const is not defined" . "\n"; } } use \Foo\Bar as Bar; var_dump(\Foo\Bar::baz); test("\Foo\Bar::baz"); var_dump(Bar::baz); test("Bar::baz"); Expected result: ---------------- string(3) "baz" \Foo\Bar::baz value is baz string(3) "baz" Bar::baz is not defined Actual result: -------------- string(3) "baz" \Foo\Bar::baz value is baz string(3) "baz" Bar::baz value is baz ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=65560&edit=1