Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP의 STATIC 및 INSTANCE 메소드를 설명합니다.

<시간/>

PHP에서 인스턴스 메소드는 정적 메소드보다 선호되는 방법입니다. 어쨌든 정적 메서드가 도움이 되지 않는다는 것은 아니며 고유하고 고유한 목적이 있습니다. 여기에서는 PHP의 정적 메서드와 인스턴스 메서드의 비교에 대해 설명합니다.

여기서 인스턴스 메소드는 항상 클래스의 객체에 연결되는 반면 정적 메소드는 항상 클래스와 연결된다는 점에 유의하십시오.

먼저 정적 메소드에 대해 이야기하십시오. PHP의 정적 메서드는 다른 객체 지향 프로그래밍 언어와 동일합니다. PHP에서 정적 메서드를 사용하는 중요한 경우. 정적 메서드는 특정 정보가 전체 클래스에 대해 일정하게 유지되는 경우에만 활용해야 합니다. 기본적으로 정적 메서드는 해당 클래스의 개체의 도움 없이 해당 메서드에 액세스할 때 활용됩니다.

예시

<?php
   class Car{
      static function getColor(){
         return "blue";
      }
   }
   echo (Car::getColor());
?>

출력:

blue

설명:

예를 들어, 위의 프로그램에서 일부 프로그래머가 자동차에 대한 정보를 만들고 있고 Car 클래스가 있고 자동차의 색상을 정의하는 getColor() 함수가 있다고 생각하십시오. 따라서 getColor() 함수가 필요한 각 객체는 다음을 수행합니다. 클래스 Car의 모든 객체에 대해 유사한 색상을 반환하므로 이 경우 getColor() 메서드를 정적으로 만들 수 있습니다.

인스턴스 메서드에 대해 알아보겠습니다. 인스턴스 메소드는 객체를 생성하지 않고는 메소드를 호출할 방법이 없을 때 활용됩니다. 또한 메서드가 클래스의 속성과 상호 작용해야 할 때마다 인스턴스 메서드가 필요했습니다.

예시

위의 경우를 예시로 보여드리겠습니다.

<?php
   class Employee{
      private $empname;
      function setEmpname($empname) {
         $this->empname = $empname;
      }
      function getEmpname() {
         return $this -> empname;
      }
   }
   $obj = new Employee;
   $obj -> setEmpname("Alex");
   echo $obj -> getName();
?>

출력:

Alex

설명:

setEmpname()이 employeename을 읽는 Employee 클래스와 Employee의 이름을 반환하는 getEmpname() 메소드를 고려하십시오. 이 경우 모든 직원 이름이 서로 다르므로 getEmpname() 또는 setEmploye() 메서드가 "$empname" 변수와 상호 작용할 때마다 이러한 메서드가 상호 작용할 때마다 정적 메서드로 선언할 수 없습니다.