Heim  >  Artikel  >  Backend-Entwicklung  >  Probleme bei der Verwendung von Namespace und Verwendung (detaillierte Beispiele sind beigefügt)

Probleme bei der Verwendung von Namespace und Verwendung (detaillierte Beispiele sind beigefügt)

WBOY
WBOYOriginal
2016-09-08 08:43:50998Durchsuche

Es gibt zwei PHP-Dateien im selben Verzeichnis

Frage:
Wie rufe ich die statischen Methoden der Klasse a und der Klasse b in index.php bzw. der Klasse c in indexb.php auf?
Wie fülle ich den Namespace aus und verwende ihn?
Datei 1: 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>

Datei 2: indexb.php

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

Antwortinhalt:

Es gibt zwei PHP-Dateien im selben Verzeichnis

Frage:
Wie rufe ich die statischen Methoden der Klasse a und der Klasse b in index.php bzw. der Klasse c in indexb.php auf?
Wie fülle ich den Namensraum aus und verwende ihn?
Datei 1: 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>

Datei 2: indexb.php

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

Datei 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>

Datei 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>

Führen Sie indexb.php aus und das Ergebnis ist: Ich bin A! Ich bin B!

Ist das das gewünschte Ergebnis?

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>
Stellungnahme:
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