Chillax in dev

[PHP] 함수 vs 메소드 의 차이? 본문

PHP

[PHP] 함수 vs 메소드 의 차이?

Seong Story 2024. 6. 21. 11:26
728x90

함수 vs 메소드 의 차이?

 

함수와 메소드는 프로그래밍에서 자주 사용되는 용어이며, 둘 다 특정 작업을 수행하는 코드 블록을 의미합니다.

그러나 사용하는 맥락에 따라 차이가 있습니다. 

php에서 어떤 차이가 있는지 확인해보겠습니다.

함수 (Function)

함수는 독립적으로 정의된 코드 블록으로, 어떤 클래스에도 속하지 않습니다. 함수는 입력값(매개변수)을 받아서 특정 작업을 수행하고, 필요에 따라 결과값을 반환할 수 있습니다. PHP에서 함수는 function 키워드를 사용하여 정의합니다.

예시:

function add($a, $b) {
    return $a + $b;
}

echo add(2, 3); // 출력: 5

메소드 (Method)

메소드는 클래스 내에 정의된 함수로, 객체 지향 프로그래밍(OOP)에서 사용됩니다. 메소드는 클래스의 인스턴스(객체)와 연관되어 있으며, 해당 객체의 상태를 읽거나 변경하는 데 사용됩니다. 메소드는 클래스의 멤버 함수라고도 합니다.

예시:

class Calculator {
    public function add($a, $b) {
        return $a + $b;
    }
}

$calc = new Calculator();
echo $calc->add(2, 3); // 출력: 5

위 예시에서 add는 Calculator 클래스의 메소드입니다. 이 메소드는 Calculator 클래스의 인스턴스를 통해 호출됩니다.

주요 차이점 요약

  1. 정의 위치:
    • 함수: 클래스 외부에서 독립적으로 정의됩니다.
    • 메소드: 클래스 내부에서 정의됩니다.
  2. 호출 방식:
    • 함수: 직접 호출합니다. 예: add(2, 3);
    • 메소드: 클래스의 인스턴스를 통해 호출합니다. 예: $calc->add(2, 3);
  3. 연관성:
    • 함수: 특정 객체와 연관되지 않습니다.
    • 메소드: 특정 객체와 연관되어 있으며, 해당 객체의 상태를 변경하거나 참조합니다.

이러한 차이점을 이해하면 함수와 메소드를 올바르게 사용할 수 있습니다. PHP에서는 객체 지향 프로그래밍을 사용할 때 메소드를 정의하고, 일반적인 절차적 프로그래밍에서는 함수를 정의하는 방식으로 코드를 작성합니다.

 

한가지 더 

PHP 는 함수,메소드를 다른 함수,메소드 내부에서 정의하는것을 허용하지 않습니다. 

이는 PHP의 기본 문법입니다. 따라서 

클래스내에서 메소드를 정의할때는 항상 클래스의 최상위 레벨에 작성해야하고 내부에 작성하지 않도록 주의해야겠습니다.

728x90
LIST
Comments