php命名空间 以及调用

<?php
#命名空间
#同一个命名空间方法名不能相同
#define 定义一个常量不能同名
#const  定义变量

#总结 命名空间只对 方法(函数), const定义的变量有用,class 类有用

# 命名空间 以及引用空间的调用
#----------------------------------
#多级命名空间 最后以及命名空间为子集命名空间 为虚拟的目录
#1非限定名称访问方式
  # 1.1 访问的时候没有指定访问的命名空间 就是指访问的当前命名空间
#2 限定名称访问方式

#3 完全限定名称访问方式

namespace beijing\tiananmen;
function getmsg(){
    echo '123';
}
const yanghaowei = "212121";
class Animals {
    public $obj = 'dog';
}
namespace shanghai\pudongqu;
const yanghaowei = "212122133";
function getmsg(){
    echo '456';
};
class Animals {
    public $obj = 'cat';
}
getmsg(); # 1 非限定名称访问方式
echo \beijing\tiananmen\getmsg(); #3 完全限定名称访问方式
echo \shanghai\pudongqu\yanghaowei; #3 完全 限定反问方式

beijing\tiananmen\getmsg(); #2 限定名称访问方式


#限定名称访问方式 与 完全限定名称反问方式的区别
#1 写法: 限定名称没有第一个\  完全限定的第一个\
#2 限定名称是相对于当前的命名空间去找指定的命名空间
#3 是从项目的根目录去找

----------------------------------

另外建一个目录代码练习如下

<?php
namespace beijing\tiananmen;
header("content-type:text/html;charset=utf-8");
class Animal{
    public $obj = 'dog';
    static $name = '大黄';
}
function getmsg($obj,$name){
    echo 'beijing--'.$obj.'的名字是'.$name;
}
namespace shanghai\pudongqu;
class Animal{
    public $obj = 'cat';
    static $name = '小白';
}
function getmsg($obj,$name){
    echo 'shanghai--'.$obj.'的名字是'.$name;
}
$animal = new Animal();
$obj = $animal->obj;
$name = $animal::$name;
getmsg($obj,$name);
echo '</br>';
$animal2 = new \beijing\tiananmen\Animal();
$obj2 = $animal2->obj;
$name2 = $animal2::$name;
\beijing\tiananmen\getmsg($obj2,$name2);
#-------------------------以上复习 命名空间知识


猜你喜欢

转载自blog.csdn.net/yhwcool/article/details/81625208