第二课 TP命名空间的三种访问方式

//空间的三种访问方式
//1、非限定名称访问方式
//
//2、不完全限定名称访问方式
//
//3、完全限定名称访问方式

namespace  kj1\kj12;
function getmsg(){
    echo '111';
}

class Animals{
    public $obj='dog';
}


const MN="222";//这个常量在命名空间kj1中
//    define('MN','7890');//如果是define定义的常量,会报错,因为命名空间对define不起作用

namespace  kj2\kj22;
function getmsg(){
    echo '333';
}

//    define('MN','7890');
const MN="444";//这个常量在命名空间kj2中,

//getmsg();//这个函数输出的数值是333,如果没有指定命名空间,会调用当前或者就近的命名空间

class Animals{
    public $obj='pig';
}


echo  "<br>";
echo '1、******************************输出指定的命名空间元素,把命名写到元素前面**********************************************';
echo  "<br>";
echo '2、******************************在一个命名空间中访问另一个命名空间的方法是输出指定的命名空间元素,把命名写到元素前面**********************************************';
echo  "<br>";

//getmsg();//在kj1中调用kj2\kj22;的函数,输出333
//echo  "<br>";
//\kj1\kj12\getmsg();//1、完全限定名称访问方式,前面如果有/就是完全限定访问方式,调用kj1中的函数,输出111


namespace  kj3\kj32;
function getmsg(){
    echo '555';
}

//getmsg();//1、非限定名称访问方式,就近访问kj3/dj32中的函数,输出555

echo  "<br>";

//kj2\kj22\getmsg();//2、限定访问,在当前命名空间kj3/dj32中访问kj2/dj22中的函数,不存在,报错

echo  "<br>";
echo '1、******************************如果用非限定命名方式访问,方法如下**********************************************';
echo  "<br>";



namespace  kj5\kj52\dj2\dj22;
function getmsg(){
    echo '666';
}
getmsg();//

猜你喜欢

转载自blog.csdn.net/jaray/article/details/80681255