Edit report at https://bugs.php.net/bug.php?id=65560&edit=1
ID: 65560 User updated by: codronm+circlecode at gmail dot com Reported by: codronm+circlecode at gmail dot com Summary: defined and constant does not resolve use aliases 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: So thanks for the point, and sorry for the "noise". Previous Comments: ------------------------------------------------------------------------ [2013-08-26 14:09:14] ni...@php.net 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.) ------------------------------------------------------------------------ [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