Heim > Backend-Entwicklung > PHP-Tutorial > 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
Freigeben: 2016-09-08 08:43:50
Original
1030 Leute haben es durchsucht

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>
Nach dem Login kopieren
Nach dem Login kopieren

Datei 2: indexb.php

<code>namespace Php {
    class c
    {
       
    }
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

Datei 2: indexb.php

<code>namespace Php {
    class c
    {
       
    }
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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