网站首页 > 技术教程 正文
最近一段时间在研究php框架,一直想的什么时候才能开发出自己的框架,当然这是为了提升自己的编程水平,同时能把平时学的零散的东西糅合在一块熟练应用。但是开发一个框架根本不知道如何做起,先开发什么,虽然php的框架也不少,但是都是如何应用,没有文档和视频可以学习,这是让我特别郁闷的事情,相信不少想自己开发框架玩的小伙伴都有类似的感受,郁闷归郁闷,自己还是动手做了,做的时候困难和想象的一样难,从一开始就有点蒙了。
那就是命名空间的使用及use引入。看了很多网上的说法,也看了官方文档,意思大概明白,也很好理解,命名空间还好说,给这个空间起个名字嘛,但是use具体操作起来就不行 了,怎么也搞不通。后来看一个yii学习视频才恍然明白。
比方说建三个文件。
第一个文件 A.php,里边有两个类,命名空间是 a\b\c;
<?php
namespace a\b\c;
class Apply{
function get_info(){
echo 'this is A Apply';
}
}
class C{
function info(){
echo 'this is info';
}
}
第二个文件 B.php 命名空间 a\b\d;
<?php
namespace a\b\d;
class Apply{
function get_info(){
echo 'this is B Apply';
}
}
第三个文件 index.php ,用来使用上边两个文件的类。
比方说我们现在想实例化A.php里的类,该怎么实现呢?
首先要包含这个文件
require_once('A.php');
然后 use a\b\c;? 还是a\b\c\A? 起初我也是这么认为的。其实这是错的,use应该是这样的,命名空间\这个空间下你要实例化类的类名。比方说我们要实例化 A.php里的Apply类,那么 use a\b\c\Apply; 这就相当于引入这个类,接下来再 new Apply();调用里边的方法,跟平常是一样的。如果要实例化类C,就 use a\b\c\C;
注意:use不等于require_once或者include,use的前提是已经把文件包含进当前文件。
顺便提一句,在MVC模式中,类名和文件名是相同的,所以use的时候会让不了解的人以为use后面跟的是文件名,我之前就这么以为的。其实use的还是类名。
有的人可能问了,那我不同的命名空间下,有相同的类名,在同一个文件中使用怎么办?比方说我们上边的index.php,把A.php和B.php都包含进来,然后new Apply();这个时候是会报错的,解决方案就是起别名,比方说 use a\b\d\Apply as b; 此时我们new 的时候不应该写成 new Apply();而是new b();这样就不会发生冲突了。
猜你喜欢
- 2024-10-21 常见面试问题之-设计模式 重要包含PHP代码实现额,PHP开发者必看
- 2024-10-21 php生命周期介绍(php的生命周期, 启动流程, 多看tipi)
- 2024-10-21 Laravel框架命名空间的定义(laravel框架关键技术解析)
- 2024-10-21 网站建站流程-空间购买(网站空间商选择考虑三大因素)
- 2024-10-21 准确JavaScript世界观:复杂值vs原始值&&内存空间(1)
- 2024-10-21 如何搭建个人博客网站?角点科技教你搭建博客网站
- 2024-10-21 建设属于自己的网站需要什么(建设属于自己的网站需要什么资质)
- 2024-10-21 省钱了!使用极空间搭建一个免费的MariaDB数据库并实现远程访问
- 2024-10-21 Windows+Apache+MySQL+PHP4 官方推荐详细安装步骤
- 2024-10-21 PHP内存管理机制与垃圾回收机制(php 内存模型)
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)