PHP動態訪問元素時名稱空間的使用
阿新 • • 發佈:2018-11-04
受PHP自身的動態特徵的影響,在動態訪問元素時,必須使用完全限定名,所以在動態的類、函式或常量名稱中,限定名稱和完全限定名沒有區別,都是按照完全限定名進行解析。
<?php namespace { const con=0; const test="test"; function foo(){ echo 'foo in global'."\n"; } class A{ static function foo(){ echo 'foo in global\A'."\n"; } } } namespace a\b{ const con = 1; const test="a\b\\test"; function foo(){ echo 'foo in a\b\foo'."\n"; } class A{ static function foo(){ echo 'foo in a\b\A'."\n"; } } $a='A'; $obj=new $a(); $obj->foo(); $a='\A'; $obj=new $a(); $obj->foo(); $a='a\b\A'; $obj=new $a(); $obj->foo(); $a='\a\b\A'; $obj=new $a(); $obj->foo(); $b="con"; echo constant($b)."\n"; $b="\con"; echo constant($b)."\n"; $b="a\b\con"; echo constant($b)."\n"; $b="\a\b\con"; echo constant($b)."\n"; $c="foo"; $c(); $c="\\foo"; $c(); $c="a\b\\foo"; $c(); $c="\\a\\b\\foo"; $c(); } ?>