PHP 设计模式一 命名空间

129 阅读2分钟

「这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战

课程背景

  • 最近完成一个项目 对于代码分层有了一丢丢了解 但是架构设计合理性上存在问题
  • 万物看本质基本功硬 底层知识扎实才能写出更优质的代码 才能走得更远
  • 作为努力奔跑的程序员 又一次的去温习 思考 设计模式等基础的php知识
  • 因为掘金粑粑有奖励,所以把学习的笔记整理记录并分享了出来。

正文开始

php5.3之后就有了命名空间的概念,因为随着项目的复杂。类重名的问题成为了一个问题。这就好比人重名的情况,虽然名字相同,但还是要根据一些别的信息把几个重名的人区分开来,这就是命名空间最简单的理解。 注意PHP规定 所有的命名空间都必须在第一行。

1 创建三个文件 test1.php test2.php index.php 并在test1.php test2.php中定义同名方法,然后在index.php中引入这两个文件。具体代码如下 test1.php

<?php
function hello(){
    echo __FILE__;
}

test2.php

<?php
function hello(){
    echo __FILE__;
}

index.php

<?php
require './test1.php';
require './test2.php';

2 此时访问 index.php文件会出现错误

image.png 这就是上面说到的重名的问题。此时就需要我们在test1.php test2.php 加入命名空间。

namespace t1;
namespace t2;

这样再次访问的适合就不会提示错误了。

3 如果要访问命名空间中的方法的话,只需要在访问的适合指定方法所属的命名空间即可。访问类也是同样的道理。

<?php
require './test1.php';
require './test2.php';

\t1\hello();  //指定命名空间
\t2\hello();

这样当我们再次发送请求,就会打印出响应的信息。

image.png