> 백엔드 개발 > PHP 튜토리얼 > 네임스페이스 사용 및 사용상의 문제점(자세한 예시 첨부)

네임스페이스 사용 및 사용상의 문제점(자세한 예시 첨부)

WBOY
풀어 주다: 2016-09-08 08:43:50
원래의
1031명이 탐색했습니다.

같은 디렉토리에 두 개의 PHP 파일이 있습니다

질문:
indexb.php의 클래스 c에서 index.php의 클래스 a와 클래스 b의 정적 메서드를 각각 어떻게 호출합니까?
네임스페이스는 어떻게 채우고 사용하나요?
파일 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>
로그인 후 복사
로그인 후 복사

파일 2: indexb.php

<code>namespace Php {
    class c
    {
       
    }
}</code>
로그인 후 복사
로그인 후 복사

답글 내용:

같은 디렉토리에 두 개의 PHP 파일이 있습니다

질문:
indexb.php의 클래스 c에서 index.php의 클래스 a와 클래스 b의 정적 메서드를 각각 어떻게 호출합니까?
네임스페이스는 어떻게 채우고 사용하나요?
파일 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>
로그인 후 복사
로그인 후 복사

파일 2: 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를 실행하면 나는 A입니다!

이것이 당신이 원하는 결과인가요?

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>
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿