php的命名空间

            背景:

                 如果在平时中我们去require一个一个的php文件,不会存在多大的问题。

                但是设想这样一个场景:如果有两个php文件中存在一样的class名字,那么同时调用的时候,就会出现报错信息.因为根本不知道你调用的是哪一个具体的class名字.

               下面有具体的demo.

                这个时候引入新的一个概念:命名空间namespace.

                

               新建一个a.php  b.php  c.php

              

               a.php   

class Hello
{
    public static function show()
    {
        echo "this is a show";
    }
}

             

             b.php

class Hello
{
    public static function show()
    {
        echo "this is b show";
    }
}


        c.php

require_once("a.php");
require_once("b.php");
$hello=new Hello();

当执行的时候会报错



为了解决这个引入名字相同类和方法,我们引入一个命名空间

先上代码后面再放结论

a.php

<?php
namespace name\a;
class Hello
{
    public static function show()
    {
        echo "this is a show";
    }
}
b.php

<?php
namespace name\b;
class Hello
{
    public static function show()
    {
        echo "this is b show";
    }
}
c.php

<?php
require_once("a.php");
require_once("b.php");
use name\b;
use name\a;
$hello1=new a\Hello();
$hello2=new b\Hello();
$hello1::show();
echo "<br/>";
$hello2::show();
结果



结论

1.命名空间必须在第一行。

2.命名空间必须有层级,至少为2层。

3.当引入命名空间后,可以解决因为相同名字的类或方法报错的问题。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值