Heim > Backend-Entwicklung > PHP-Tutorial > php命名空间类的使用疑惑

php命名空间类的使用疑惑

WBOY
Freigeben: 2016-06-06 20:29:50
Original
931 Leute haben es durchsucht

写了一个类且使用了命名空间:`
namespace a\b;
class Demo extends XXX{

<code>……</code>
Nach dem Login kopieren
Nach dem Login kopieren

}`

在另一个文件中使用:`
use a\b\Demo;
$d = new Demo();
`

提示:XXX类找不到。

我自己的类使用了命名空间,继承的XXX类是属于第三方的类库,第三方类库并没有使用命名空间,使用的是require_once文件包含。

我不知道这个问题怎么去解决,把第三方类库全改成命名空间形式的不太现实,总不能每当使用到第三方时都这么做吧,工程量很大。

回复内容:

写了一个类且使用了命名空间:`
namespace a\b;
class Demo extends XXX{

<code>……</code>
Nach dem Login kopieren
Nach dem Login kopieren

}`

在另一个文件中使用:`
use a\b\Demo;
$d = new Demo();
`

提示:XXX类找不到。

我自己的类使用了命名空间,继承的XXX类是属于第三方的类库,第三方类库并没有使用命名空间,使用的是require_once文件包含。

我不知道这个问题怎么去解决,把第三方类库全改成命名空间形式的不太现实,总不能每当使用到第三方时都这么做吧,工程量很大。

a.php

<code><?php namespace a\b;

class Demo extends \C {

    public function __construct()
    {
        echo 'This is Demo obj<br />';
    }

}</code>
Nach dem Login kopieren

c.php

<code><?php class C {

    public function out()
    {
        echo 'This is C obj<br />';
    }

}</code>
Nach dem Login kopieren

b.php

<code><?php require 'c.php';
require 'a.php';

use a\b\Demo;
$d = new Demo();
$d->out();</code>
Nach dem Login kopieren

大概是这个意思吧?

如果第三方类没有设置命名空间,PHP默认会加上一个顶级命名空间'\'的

顺便注意文件的加载顺序

<code>class Demo extends \XXX</code>
Nach dem Login kopieren

1.XXX 类以及这个类里面需要用到的类必须加namespace
2.代码必须修改:

<code>namespace a\b;
use 路径/路径/XXX;   //此处必须将XXX继承的class 使用use操作符导入进来
class Demo extends XXX{

……
}`
</code>
Nach dem Login kopieren

这两个条件缺一不可!!!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage