Heim > Artikel > Backend-Entwicklung > Probleme bei der Verwendung von Namespace und Verwendung (detaillierte Beispiele sind beigefügt)
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>
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>