2011-02-06 5 views
0

PHP - 클래스를 사용해야합니까?

클래스는 다음과 같습니다.

class do{ 
    function do_something($what){ 
    ... 
    echo $what; 
    } 

    function do_other_stuff($what){ 
    ... 
    echo $what; 
    } 
} 

if(do::do_something('whatever'))...

또는 do::do_other_stuff('whatever')...

같은 클래스를 사용하는 점이 있습니까?

기본적으로 함수가 클래스 외부에있는 경우 함수를 사용하는 것과 같습니다.

+1

[정적 방법 대 기능]의 가능한 중복 (http://stackoverflow.com/questions/4690478/functions-vs-static-methods) 질문에 대답하지 않습니다 –

답변

9

클래스의 함수를 절차 적 함수처럼 호출하는 중이라면 아니요, 그다지 가치가 있다고 말하지 않을 것입니다. 모든 것은 여러분의 방법을 그룹으로 묶는 것을 돕는 역할을하지만 접두사 등을 통해 완성 될 수 있습니다. 객체 지향 프로그래밍의 가치는 캡슐화, 관심사 분리 등을 통해 발생합니다. 귀하가 제공 한 코드 샘플을 사용하여 나는 PHP의 객체 지향 기능을 사용하는 것이 매우 유용 할 수 있다고 생각하지만, 객체 지향 프로그래밍을 완전히 이해하고 객체 지향 마인드에 있어야한다. 그렇지 않으면 그 기능을 이용하지 않을 것이고 어쨌든 절차 코드를 작성하게 될 것이다. .

4

기술적으로 잘못된 것입니다 - 당신은 PHP가의 라인을 따라 오류를 던지고 것을 볼 수 있습니다 E_STRICT 경고를 사용하도록 설정하면 ...

PHP 엄격한 기준 : 비 정적 방법 이렇게 :: do_something() 이에 ...에 관계없이

정적으로 호출 할 수 없습니다를, 나는 기존 Functions vs. Static Methods 질문 자세한 내용은 PHP Classes and Objects 매뉴얼 섹션의 읽기를 권하고 싶습니다.

+0

- 그것은 단순히 엄격한입니다 구문 오류. 그가 그것을'public static function() {'으로 변경했다면 괜찮을 것입니다. – xil3

+2

@ xil3 PC 만 있으면 OP가 남자라고 생각하지 마십시오.불행히도이 분야에서 안전한 내기가 있었지만 항상 그런 것은 아니 었습니다. –

+0

@ xil3 그래, 의견을 추가 할 때 중간 업데이트였습니다. –

1

같은 것을 필요로하는 경우

네임 스페이스 위의 기능을 포함한다. OOP 클래스를 설계하는 것은 확실히 권장되는 방법은 아니지만, 유틸리티 코드를 어셈블하는 용도로 사용됩니다. 그래서 모든게 나쁜 것은 아닙니다.

그러나 실제 개체 구조를 디자인 할 때는 평범한 작업을 수행하지 말고 "메시지 전달"을 생각하는 것이 가장 좋습니다. 방법을 설계 할 때 결과 나 발생에 대해 생각하십시오. 또한 beware of setter and getter methods. (의미있는 OOP에 대한 좋은 소개를 읽어보십시오.)

0

정적 메서드를 사용하도록 선택한 경우 정적 메서드로 선언해야합니다. 일부 언급했듯이, 당신이 그것을 사용하는 방식의 주요 이점은 비슷한 기능을 함께 그룹화하는 것입니다, 나는 몇몇 도우미 기능을 위해 때때로 이것을하지만 이제는 OO를 배웠고, 절차 적 코딩은 더 이상 갈 방법이 아닙니다. OO 코딩에 대해 더 많이 배우는 것이 좋습니다. 정말 놀라운 일을 할 수 있습니다.

class do{ 
    public static function do_something($what){ 
    ... 
    echo $what; 
    } 

    public static function do_other_stuff($what){ 
    ... 
    echo $what; 
    } 
} 
관련 문제