首頁  >  文章  >  後端開發  >  namespace和use的使用問題(已附上詳細範例)

namespace和use的使用問題(已附上詳細範例)

WBOY
WBOY原創
2016-09-08 08:43:50942瀏覽

同級目錄下有兩個php檔

問題:
我如何在indexb.php中的class c中分別呼叫index.php中class a 和 class b的靜態方法?
namespace 和 use 怎麼填?
文件一:index.php

<code>namespace {
    use 
   class a{
    static public function speak($a)
        {
            echo $a;
        }
   }

}
namespace {
use
    class a{
    static public function speak($a)
        {
            echo $a.$a;
        }
   }

}
</code>

文件二:indexb.php

<code>namespace Php {
    class c
    {
       
    }
}</code>

回覆內容:

同級目錄下有兩個php檔

問題:
我如何在indexb.php中的class c中分別呼叫index.php中class a 和 class b的靜態方法?
namespace 和 use 怎麼填?
文件一:index.php

<code>namespace {
    use 
   class a{
    static public function speak($a)
        {
            echo $a;
        }
   }

}
namespace {
use
    class a{
    static public function speak($a)
        {
            echo $a.$a;
        }
   }

}
</code>

文件二:indexb.php

<code>namespace Php {
    class c
    {
       
    }
}</code>

文件index.php:

<code><?php
namespace A{
   class A{
       static public function speak($a)
       {
           echo $a;
       }
   }

}
namespace  B{
    class B{
        static public function speak($a)
        {
            echo $a;
        }
    }

}</code>

文件indexb.php

<code><?php
namespace PHP{
    use A\A;
    use B\B;
    class C{
        public static function test(){
            include "index.php";
            A::speak("I am A!");
            B::speak("I am B!");
        }
    }
    //测试
    \PHP\C::test();
}</code>

運行indexb.php 結果I am A!I am B!

是不是你想要的結果?

index.php

<code><?php

namespace test{

class a
{
    static public function speak($a)
    {
        echo $a;
    }
}
}

namespace test2{

class b 
{
    static public function speak($a)
    {
        echo $a.$a;
    }
}
}</code>

indexb.php

<code><?php

namespace testt{

include 'index.php';
use test\a;
use test2\b;

class c
{
    public $a;
    public function speak()
    {
//        var_dump(new a);
//        \test\a::speak($this->a);
        a::speak($this->a);
//        \test2\b::speak($this->a);
        b::speak($this->a);
    }
}

$c = new \testt\c();
$c->a = 'zhansan';
$c->speak();
}</code>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn