php命名对照表(PHP命名空间用法实例分析)
php命名对照表
PHP命名空间用法实例分析本文实例讲述了php命名空间用法。分享给大家供大家参考,具体如下:
在讲解命名空间之前,我们先了解一个问题。
我们在网站根目录创建一个文件夹,在文件夹中创建a.php
|
<?php class apple{ function get_into(){ echo "this is a" ; } } |
然后再创建一个b.php
|
<?php class apple{ function get_into(){ echo "this is b" ; } } |
再创建一个index.php,并且想要在index.php中同时使用a.php和b.php中的apple类,所以我们用require_once进行引用
|
<?php require_once "a.php" ; require_once "b.php" ; |
此时我们在浏览器中运行index.php,就会看到一行错误信息。cannot redeclare class apple,意思是我们不能重写apple类。
而如果我们确实需要同时用到时,这时候就可以运用到命名空间解决这个问题。将a.php和b.php稍微更改:
a.php
|
<?php namespace a\b\c; class apple{ function get_into(){ echo "this is a" ; } } |
b.php
|
<?php namespace d\e\f; class apple{ function get_into(){ echo "this is a" ; } } |
这时我们重新刷新index.php,可以看到已经没有报错了,因为这两个apple类在不同的命名空间中,不存在重写问题了。
我们分别实例化a.php和b.php中的两个类,分别调用其中的get_info方法。
|
<?php require_once "a.php" ; require_once "b.php" ; $a = new \a\b\c\apple(); $a ->get_into(); $b = new \d\e\f\apple(); $b ->get_into(); |
刷新之后可以看到我们成功地调用了两个类中的方法。那么问题又来了,如果我们需要多次实例化这个类,岂不是每次都要一长串的命名空间?这样看起来代码十分臃肿。我们可以对代码再做修改。
|
<?php require_once "a.php" ; require_once "b.php" ; use \a\b\c\apple; use d\e\f\apple as bapple; $a = new apple(); $a ->get_into(); $b = new bapple(); $b ->get_into(); |
在代码中我们使用了use来使用命名空间,但是如果继续使用use \d\e\f\apple
显然和上面一行代码产生了冲突,我们可以使用as
对\d\e\f中的apple设置一个别名,这个时候$b = new bapple();
就不会产生二义性了。
在浏览器中运行index.php,可以看到输出的结果就是我们预期的结果。
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/qq_18335837/article/details/8029062
- phpstudy详细教程学习(phpstudy的php版本自由修改的方法)
- php上传文件的要求(PHP大文件分块上传功能实例详解)
- php使用面向对象如何写好代码(PHP面向对象程序设计模拟一般面向对象语言中的方法重载overload示例)
- phpstudy8.0使用教程视频(phpstudy v8.1 Apache伪静态配置图文教程)
- php 策略模式工厂模式区别(PHP设计模式之策略模式原理与用法实例分析)
- thinkphp接口开发实例(ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解)
- php怎么设计状态模式(php设计模式之观察者模式定义与用法经典示例)
- phpstudy创建网站教程交流(phpStudy V8中创建与管理站点图文教程)
- php开发pdo事务处理(Cpanel下Cron Jobs定时执行PHP的方法)
- linux下如何启动phpstudy面板(详解phpstudy linux web面板小皮面板V0.2版本正式发布)
- nginx和php怎么结合(php和nginx交互实例讲解)
- php添加到数组的用法(详解PHP 7.4 中数组延展操作符语法知识点)
- php设计模式如何实现(php模式设计之观察者模式应用实例分析)
- php怎么设置统计代码(php简单计算权重的方法示例适合抽奖类应用)
- php开启curl(解决PHP使用CURL发送GET请求时传递参数的问题)
- php微信支付怎么做(ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解)
- 全椒人在苏州10周年联谊会在苏州举办(全椒人在苏州10周年联谊会在苏州举办)
- 这个全椒人被通报表彰,看看你认识吗(这个全椒人被通报表彰)
- 全椒人,38年集体回忆 1980-2018 ,看完不要哭(全椒人38年集体回忆)
- 董元奔吟咏历代文人 1012新旧均可 全椒人张璪 1022 -1093(董元奔吟咏历代文人)
- 泪目 这位 刷屏 的英雄,是全椒人的骄傲(泪目这位刷屏)
- 人从众 火炎焱 全椒再现 正月十六走太平 的魅力(人从众火炎焱全椒再现)
热门推荐
- python3.7手册中文版(Python3.4解释器用法简单示例)
- 程序员哪些情况可以考虑辞职
- vue使用websocket的详细步骤(vue使用webSocket更新实时天气的方法)
- 香港云服务器优化有用吗(香港云服务器优势有哪些?)
- vue3.0安装element(vue3+electron12+dll开发客户端配置详解)
- vue路由跳转的方法(Vue路由监听实现同页面动态加载的示例)
- mysql 用户权限配置(详解MySQL 用户权限管理)
- iis警告事件怎么处理(IIS服务器常见错误解析及排错指南、错误代码大全)
- nodejs架构解析(详解NodeJS模块化)
- mysql自增长语句(mysql实现自增序列的示例代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9