Blogger Information
Blog 49
fans 0
comment 4
visits 41879
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
命名空间的使用
过儿的博客
Original
929 people have browsed it

1、命名空间中的全局成员访问技术

 

实例

<?php
      namespace one;
      //定义三个全局成员
      class Pig { }
       function hello(){ return 'Hello 朱老师';}
       const SITE = 'php.cn';

       //访问成员
       echo Pig::class.'<br>';//完整的类名
       echo hello().'<br>';
       echo SITE.'<br>';
      
       //在一个PHP文件中可以矿建多个命名空间
       namespace two;
       class Pig { }
       function hello(){ return 'Hello 王老师';}
       const SITE = 'html.cn';

       //访问成员
       echo Pig::class.'<br>';//完整的类名
       echo hello().'<br>';
       echo SITE.'<br>';

       //如果在two空间想要访问one空间
       //必须先返回到跟空间
       echo \one\Pig::class.'<br>';//完整的类名
       echo \one\hello().'<br>';
       echo \one\SITE.'<br>';

    ?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

1.png


2、 带有命名空间的类,如何实现自动加载?

实例

<?php

$path = str_replace('\\','/','inc\Class1');
echo $path;
echo '<br>';

$path = __DIR__.'/'.$path.'.php';
echo $path;



spl_autoload_register(function($class){
    $path = str_replace('\\','DIRECTORY_SEPARATOR','$class');
    $path = __DIR__.'/'.$path.'.php';

    if(!is_file($path) && file_exists($path)){
        throw new \Exception('不是文件或文件不存在');
    }
    require $path;
});

$obj1 = new \inc\Class1();
$obj2 = new \inc\Class2();

echo get_class($obj1).'<br>';
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

3、 命名空间的别名导入方式

实例

<?php
//空间别名
namespace current;
include 'inc/Class1.php';
$obj = new \test1\inc\Class1();
echo get_class($obj).'<br>';
  //命名空间别名
use  \test1\inc\Class1 as C1;
$obj1 = new c1;
echo get_class($obj1).'<br>';
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post