好好爱自己!

php命名空间的使用,同一个命名空间可以在多个文件中定义

php namespace的使用,直接打印出已经定义的命名空间

直接上代码,a.php , b.php, c.php , main.php

a.php

1
2
3
4
5
6
<?php
namespace A{
    class Person{
        public $name = 'ljl';
    }
}

b.php

1
2
3
4
5
6
7
<?php
namespace A{
    class Animal{
        public $name = 'dog';
    }
}
                                    

c.php

1
2
3
4
5
6
7
<?php
namespace A\Test;
class Test{
    public $name = 'test';
}
                                      
                                     

main.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
include "./a.php";
include "./b.php";
include "./c.php";
$a = new \A\Person();
var_dump($a);
 
$animal = new \A\Animal();
var_dump($animal);
 
 
$namespaces=array();
foreach(get_declared_classes() as $name) {
    if(preg_match_all("@[^\\\]+(?=\\\)@iU", $name, $matches)) {
        $matches = $matches[0];
        $parent =&$namespaces;
        while(count($matches)) {
            $match = array_shift($matches);
            if(!isset($parent[$match]) && count($matches))
                $parent[$match] = array();
            $parent =&$parent[$match];
 
        }
    }
}
 
print_r($namespaces);
                                                                                           
                                                                                           
                                                                                           
                                                                                          

  

 

 

posted @   立志做一个好的程序员  阅读(1765)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类

不断学习创作,与自己快乐相处

点击右上角即可分享
微信分享提示