登录  /  注册
博主信息
博文 49
粉丝 0
评论 4
访问量 40585
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
命名空间的使用
过儿的博客
原创
902人浏览过

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>';
?>

运行实例 »

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

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学