2.使用示例:
phpadvanced 目录下的TestNamespaced.php类<?php namespace phpadvanced; class TestNamespace { PRivate static $name="hehe1"; public static function getName(){ echo self::$name."<br />"; } public static function setName($name){ self::$name = $name; } }phpadvanced/test 目录下的TestNamespaced.php类<?php namespace phpadvanced/test; require_once "../TestNamespace.php"; use phpadvanced/TestNamespace as TestNamespace1; class TestNamespace { private static $name="hehe"; public static function getName(){ echo self::$name."<br />"; } public static function setName($name){ self::$name = $name; } } $obj = new TestNamespace(); $obj->setName("haha2"); $obj->getName(); TestNamespace1::getName();http://192.168.15.233:8088/phpadvanced/test/TestNamespace.php 执行结果: haha2 hehe1
分析:在不同目录(不同命名空间下)创建相同的类TestNamespace.php,类包含一个私有的静态变量和两个共有的静态方法。 使用require_once 包含文件后,使用use定义命名空间别名。
3.使用示例2
phpadvanced 目录下的TestNamespaced2.php类<?php namespace phpadvanced; require_once "./TestNamespace.php"; require_once "./test/TestNamespace.php"; use phpadvanced/TestNamespace as TestNamespace1; use phpadvanced/test/TestNamespace as TestNamespace11; TestNamespace1::setName("haha"); TestNamespace1::getName(); TestNamespace11::setName("haha2"); TestNamespace11::getName();http://192.168.15.233:8088/phpadvanced/TestNamespace2.php 执行结果: haha haha2
全局命名空间示例phpadvanced 目录下的TestNamespaced3.php类<?php namespace phpadvanced; class TestNamespace3 { public function test() { $exception = new /Exception(); var_dump($exception); } } $obj = new TestNamespace3(); $obj->test();http://192.168.15.233:8088/phpadvanced/TestNamespace3.php 没有在Exception前加 / 符号 执行结果:
Fatal error: Class 'phpadvanced/Exception' not found in C:/xampp/htdocs/phpadvanced/TestNamespace3.php on line 8在Exception前 加 / 符号,执行结果:
object(Exception)#2 (7) { ["message":protected]=> string(0) "" ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(0) ["file":protected]=> string(46) "C:/xampp/htdocs/phpadvanced/TestNamespace3.php" ["line":protected]=> int(8) ["trace":"Exception":private]=> array(1) { [0]=> array(6) { ["file"]=> string(46) "C:/xampp/htdocs/phpadvanced/TestNamespace3.php" ["line"]=> int(15) ["function"]=> string(4) "test" ["class"]=> string(26) "phpadvanced/TestNamespace3" ["type"]=> string(2) "->" ["args"]=> array(0) { } } } ["previous":"Exception":private]=> NULL}新闻热点
疑难解答
图片精选