2012-06-22 4 views
2

저는 PHP에서 클래스를 사용하고 C++ 백그라운드에서 들어오는 중입니다. 말 그대로 모든 클래스는 클래스 정의 안에 정의 된 메소드를 보여 주며 가독성을 높이기 위해 클래스 정의 외부에서 클래스 메소드를 정의 할 수 있는지 궁금합니다.메서드를 클래스 외부에서 정의 할 수 있습니까?

+0

나는 그렇게 생각하지 않는다. PHP는 C++처럼 작동하지 않습니다. –

+0

아니, 그렇게 할 수 없어. –

+3

"C++ 개발자에게 가독성 향상"을 의미합니다. 코드에서 작업하는 다른 PHP 개발자가 쉽게 읽을 수 있어야합니다. – millimoose

답변

5

일종의. PHP 5.4는 traits과 거의 비슷하게 생겼습니다.

1

즉, 그렇게 할 수 없습니다. PHP에서는 모든 mothod가 클래스 안에 있어야합니다. 그래서 php는 내가 본 몇몇 개발자들에 의해 완전히 OOP 언어로 간주되지 않는 이유입니다.

+4

이것이 PHP가 완전히 OOP가 아니라고 생각하는 이유이기 때문에 PHP에 관해 더 많은 것을 배울 수 있습니다. (완벽하게 OOP는 아니지만 그게 가장 이상한 일이 아닙니다.) –

+0

@Michael amen brother, amen :) –

+0

너도 알다시피, 나도 그들에게 동의한다. asp.net의 예를 들어보십시오. 그것은 55 자국으로 100 점을 찍는 것과 같습니다. –

4

예, PHP에서 할 수 있습니다. 클래스 메서드의 함수 본문은 외부 파일에 완전히 넣을 수 있습니다.

class foo 
{ 
    function bar() { 
     include('import_method_body.php'); 
    } 
} 

이것은 여러 연령대에서 작동합니다.

+1

C++과 비슷하지만 실제로 그렇게 할 수는 있습니다. (나는 누군가가 다른 파일의 _method body_를 포함했다는 것을 발견했다면 내 일을 그만두겠다고 생각한다.) –

+0

가장 인기있는 PHP 프레임 워크 (젠드) 중 하나를 살펴 보자. (나는 여기에 대해 판단하지 않고있다.) – hakre

+0

@Michael : PHP는 해석 된 언어이다. C++과 비교하기가 어렵다. e, g, 당신은 당신 자신의 프로토콜 wrapper를 등록 할 수 있고 유선'include 'my : // wrap (it.up())'; 그리고 그것은 * inside * method bodies (그리고 젠드 프레임 워크가 btw를 사용하지 않는 것)뿐입니다. – hakre

관련 문제