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

Reply via email to