php namespace use用法简介

首先看2个php文件,如下:

// 2.php
# 1.php
 tmain();

php的namespace和python的import作用是一样的,目的都是把不同文件中的变量的、方法、类等区别开,否则很容易引起混乱。

python中的impor比较容易理解,php由于历史设计遗留导致namespace在php5.3中才加入进来,所以写起来有些别扭(用反斜杠:\区分)。

看刚才的两个文件:其中2.phpnamespacetwo\t2,也就是说如果引用2.php文件后,要想用其中的方法、变量、类等需要加上这个namespacetwo\t2,namespace后命名的定义不区分大小写,习惯上是以驼峰命名规则,例如:

use GuzzleHttp\Client as RQ;
use QL\QueryList as PQ;
use think\Db as DB;

在示例文件1.php中,想要用2.php中的方法,需要加上这个namespace,但是,由于2.phpnamespace比较长(two\t2),我们用as关键字做一个别名t2,相当于用t2替代了two\t2,这样每次写t2就可以了,看1.php中的echo t2\main(),是用t2.php文件中的main方法,这样就能和1.php中的main方法区分开了。同理使用2.php中的类也是一样,加上as后的别名就可以了。

和python对比一下:
在python中import abc as a,接着就能用abc.py中的东西了,例如:

a.get() #方法
a.name #变量

在php中需要先require 2.php,然后use abc as a,这里的abc就是2.php中的namespace了,剩下的使用和python则大同小异,python是用.区分,php则是用\

每个编程语言都会有不同的引用文件方法,对比python,php,golang,ruby,javascript,java,c#等会发现,python设计真的很简洁,甚至nodejs的namespace就是致敬(抄袭)的python。

你可能感兴趣的:(php namespace use用法简介)