Rumah > pembangunan bahagian belakang > tutorial php > php namespace 引起的问题

php namespace 引起的问题

WBOY
Lepaskan: 2016-06-06 20:14:49
asal
1156 orang telah melayarinya

<code><?php namespace abc;

class test1 {
    public $a = ' aaa';
    public function hello(){
        echo 'hello' . $this->a . PHP_EOL;
    }
}

class test2 {
    public function hello(){
        $obj = new test1;
        //var_dump(get_class($obj)); //always abc\test1
        $obj->hello();
    }
}

namespace def;
class test1 extends \abc\test1 {
    public $a = ' bbb';
}

class test2 extends \abc\test2 {

}



(new test2)->hello();</code>
Salin selepas log masuk
Salin selepas log masuk

求教:
不改动abc命名空间的代码的情况下, 如何在 def\test2 调用 def\test1 而不是 abc\test1

回复内容:

<code><?php namespace abc;

class test1 {
    public $a = ' aaa';
    public function hello(){
        echo 'hello' . $this->a . PHP_EOL;
    }
}

class test2 {
    public function hello(){
        $obj = new test1;
        //var_dump(get_class($obj)); //always abc\test1
        $obj->hello();
    }
}

namespace def;
class test1 extends \abc\test1 {
    public $a = ' bbb';
}

class test2 extends \abc\test2 {

}



(new test2)->hello();</code>
Salin selepas log masuk
Salin selepas log masuk

求教:
不改动abc命名空间的代码的情况下, 如何在 def\test2 调用 def\test1 而不是 abc\test1

下面这段这么修改:

<code>namespace def;
class test1 extends \abc\test1 {
    public $a = ' bbb';
}

class test2 extends test1 {

}


$a= new \def\test2();
print_r($a->hello());</code>
Salin selepas log masuk
Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan