저는 PHP에서 클래스를 사용하고 C++ 백그라운드에서 들어오는 중입니다. 말 그대로 모든 클래스는 클래스 정의 안에 정의 된 메소드를 보여 주며 가독성을 높이기 위해 클래스 정의 외부에서 클래스 메소드를 정의 할 수 있는지 궁금합니다.메서드를 클래스 외부에서 정의 할 수 있습니까?
답변
일종의. PHP 5.4는 traits과 거의 비슷하게 생겼습니다.
즉, 그렇게 할 수 없습니다. PHP에서는 모든 mothod가 클래스 안에 있어야합니다. 그래서 php는 내가 본 몇몇 개발자들에 의해 완전히 OOP 언어로 간주되지 않는 이유입니다.
이것이 PHP가 완전히 OOP가 아니라고 생각하는 이유이기 때문에 PHP에 관해 더 많은 것을 배울 수 있습니다. (완벽하게 OOP는 아니지만 그게 가장 이상한 일이 아닙니다.) –
@Michael amen brother, amen :) –
너도 알다시피, 나도 그들에게 동의한다. asp.net의 예를 들어보십시오. 그것은 55 자국으로 100 점을 찍는 것과 같습니다. –
예, PHP에서 할 수 있습니다. 클래스 메서드의 함수 본문은 외부 파일에 완전히 넣을 수 있습니다.
class foo
{
function bar() {
include('import_method_body.php');
}
}
이것은 여러 연령대에서 작동합니다.
C++과 비슷하지만 실제로 그렇게 할 수는 있습니다. (나는 누군가가 다른 파일의 _method body_를 포함했다는 것을 발견했다면 내 일을 그만두겠다고 생각한다.) –
가장 인기있는 PHP 프레임 워크 (젠드) 중 하나를 살펴 보자. (나는 여기에 대해 판단하지 않고있다.) – hakre
@Michael : PHP는 해석 된 언어이다. C++과 비교하기가 어렵다. e, g, 당신은 당신 자신의 프로토콜 wrapper를 등록 할 수 있고 유선'include 'my : // wrap (it.up())'; 그리고 그것은 * inside * method bodies (그리고 젠드 프레임 워크가 btw를 사용하지 않는 것)뿐입니다. – hakre
- 1. 대리자 인스턴스를 클래스 외부에서 정의 할 수 있습니까?
- 2. 초급 - 클래스 외부에서 개인 클래스 속성에 액세스 할 수 있습니까?
- 3. x : Name이있는 XAML 요소가 정의 된 클래스 외부에서 액세스 할 수 없게 할 수 있습니까?
- 4. 클래스 외부에 Objective-C 메서드를 선언 할 수 있습니까?
- 5. 클래스 내에서 mousePressed를 정의 할 수 있습니까?
- 6. 생성자를 클래스 밖으로 정의 할 수 있습니까?
- 7. 어떻게하면 JQuery 클래스 외부에서 JQuery 함수를 호출 할 수 있습니까?
- 8. 사용자 정의 컨트롤 외부에서 사용자 정의 컨트롤의 메서드를 구현하려면 어떻게해야합니까?
- 9. MooseX :: Declare?를 사용하여 클래스 외부에서 함수를 정의 할 수 있습니까?
- 10. 왜 private 확장 클래스 메서드를 사용하여 기본 클래스 메서드를 재정의 할 수 있습니까?
- 11. 사용자 정의 메서드를 호출 할 수 없습니다.
- 12. Objective-C에서 정적 클래스 메서드를 인라인 할 수 있습니까?
- 13. 특정 클래스 또는 메서드를 래핑하고 스레드에 할당 할 수 있습니까?
- 14. 플래시 무비에서 자바 클래스 메서드를 호출 할 수 있습니까?
- 15. JavaScript의 모든 "클래스"에 인스턴스 메서드를 추가 할 수 있습니까?
- 16. 특성의 메서드로 스칼라 클래스 메서드를 재정의 할 수 있습니까?
- 17. 효율성을 위해 클래스 외부에서 직접 ivar 액세스를 사용할 수 있습니까?
- 18. 메서드를 람다 함수로 재정의 할 수 있습니까?
- 19. Ruby에서 [대괄호] 메서드를 어떻게 정의 할 수 있습니까?
- 20. Ruby 모듈에서 Object 메서드를 어떻게 동적으로 정의 할 수 있습니까?
- 21. 클래스 메서드에서 has_many 메서드를 사용할 수 있습니까?
- 22. 언제 개체와 메서드를 조롱 할 수 있습니까?
- 23. 범주 메서드를 재정의 할 수 있습니까? IOS
- 24. 개체 외부에서 VFunc를 호출 할 수 있습니까?
- 25. '종료 프로세스'를 외부에서 감지 할 수 있습니까?
- 26. ObjC : 외부에서 사용자 정의 클래스의 ivar에 액세스 할 수 없습니다.
- 27. Python은 클래스 정의 밖에서 메서드를 정의합니까?
- 28. 컨트롤러에서 Daemon 메서드를 호출 할 수 있습니까?
- 29. C#, Extension 메서드를 C#의 사용자 정의 클래스에 추가 할 수 있습니까 (기본 클래스 아님)
- 30. 컨트롤러 외부에서 컨트롤러 메서드를 호출하십시오.
나는 그렇게 생각하지 않는다. PHP는 C++처럼 작동하지 않습니다. –
아니, 그렇게 할 수 없어. –
"C++ 개발자에게 가독성 향상"을 의미합니다. 코드에서 작업하는 다른 PHP 개발자가 쉽게 읽을 수 있어야합니다. – millimoose