本篇文章为大家展示了命名空间如何在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();
就不会产生二义性了。
php的框架:1、Laravel,Laravel是一款免费并且开源的PHP应用框架。2、Phalcon,Phalcon是运行速度最快的一个PHP框架。3、Symfony,Symfony是一款为Web项目准备的PHP框架。4、Yii,Yii是一款快速、安全和专业的PHP框架。5、CodeIgniter,CodeIgniter是一款非常敏捷的开源PHP框架。6、CakePHP,CakePHP是一款老牌的PHP框架。7.Kohana,Kohana是一款敏捷但是功能强大的PHP框架。
上述内容就是命名空间如何在PHP中使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。