php引入命名空间的目的,就是为了防止不同的文件 标识符同名的问题,比如类、函数、变量同名导致冲突的问题。这才是根本的根本,了解指点,带着这个观念去学习php命名空间的相关知识,就不会云里雾里了,会比较清晰一点。
lib1.php
<?php namespace AppLib1; const MYCONST = 'AppLib1MYCONST'; function MyFunction() { return __FUNCTION__; } class MyClass { static function WhoAmI() { return __METHOD__; } }
lib2.php
<?php // application library 2 namespace AppLib2; //const MYCONST = 'AppLib2MYCONST'; // function MyFunction() { return __FUNCTION__; } //class MyClass { // static function WhoAmI() { // return __METHOD__; // } //} class Lib2{ static function WhoAmI(){ return __METHOD__; } public function __construct(){ exit('in'); } }
myApp1.php
<?php use AppLib1; use App as s; require_once('lib1.php'); require_once('lib2.php'); header('Content-type: text/plain'); echo Lib1MYCONST . " "; echo Lib1MyFunction() . " "; echo sLib2MyFunction();