> 백엔드 개발 > PHP 튜토리얼 > PHP의 매직 함수 및 매직 상수 사용에 대한 자세한 설명

PHP의 매직 함수 및 매직 상수 사용에 대한 자세한 설명

黄舟
풀어 주다: 2023-03-14 12:40:01
원래의
1286명이 탐색했습니다.

이 글은 주로 PHP 매직 함수와 매직 상수 관련 지식을 소개합니다. 도움이 필요한 친구들은

php 매직 함수

1를 참고하세요. __construct()

는 객체를 인스턴스화할 때 호출됩니다.
__construct와 클래스 이름 및 함수 이름을 가진 함수가 동시에 존재하면 __construct가 호출되고 다른 하나는 호출되지 않습니다.

2. __destruct()
객체가 삭제되거나 객체 작업이 종료될 때 호출됩니다.

3. __call()
객체가 메소드를 호출합니다.
메서드가 있으면 직접 호출됩니다.
존재하지 않으면 __call 함수가 호출됩니다.

4. __get()
객체의 속성을 읽을 때
속성이 있으면 속성 값을 직접 반환합니다.
존재하지 않으면 __get 함수가 호출됩니다.

5. __set()
객체의 속성을 설정할 때
속성이 존재하면 값이 직접 할당됩니다.
존재하지 않으면 __set 함수가 호출됩니다.

6. __toString()
객체를 인쇄할 때 호출됩니다. echo $obj; 또는 print $obj;

7. __clone()
객체를 복제할 때 호출됩니다. 예: $t=new Test();$t1=clone $t;

8. __sleep()은
직렬화 전에 호출됩니다. 객체가 상대적으로 크고 직렬화하기 전에 약간 삭제하려는 경우 이 기능을 고려할 수 있습니다.

9. __wakeup()
은 직렬화 해제 시 호출되며 일부 객체 초기화 작업을 수행합니다.

10. __isset()
객체의 속성이 존재하는지 확인할 때 호출됩니다. 예: isset($c->name).

11. __unset()
객체의 속성을 설정 해제할 때 호출됩니다. 예: unset($c->name).

12. __set_state()
var_export가 호출될 때 호출됩니다. __set_state의 반환 값을 var_export의 반환 값으로 사용합니다.

13. __autoload()
객체를 인스턴스화할 때 해당 클래스가 존재하지 않으면 이 메서드가 호출됩니다.

php 마법 상수

1. __LINE__
파일의 현재 줄 번호를 반환합니다.

2. __FILE__
파일의 전체 경로와 파일 이름을 반환합니다. 포함 파일에 사용되는 경우 포함 파일 이름을 반환합니다. PHP 4.0.2부터 __FILE__에는 항상 절대 경로가 포함되어 있지만 이전 버전에서는 때때로 상대 경로가 포함되어 있었습니다.

3. __FUNCTION__
함수 이름을 반환합니다(PHP 4.3.0의 새로운 기능). PHP 5부터 이 상수는 정의된 대로 함수 이름을 반환합니다(대소문자 구분). PHP 4에서 이 값은 항상 소문자입니다.

4. __CLASS__
클래스 이름을 반환합니다(PHP 4.3.0의 새로운 기능). PHP 5부터 이 상수는 정의되었을 때 클래스의 이름을 반환합니다(대소문자 구분). PHP 4에서 이 값은 항상 소문자입니다.

5. __METHOD__
클래스의 메소드 이름을 반환합니다(PHP 5.0.0에 새로 추가됨). 정의된 대로 메서드의 이름을 반환합니다(대소문자 구분).

(1) 매직 메소드에 대한 첫 소개
Php 5.0은 출시 이후 많은 객체 지향 기능을 제공했으며, 특히 사용하기 쉬운 많은 매직 메소드를 통해 코딩을 단순화하고 더 많은 작업을 수행할 수 있습니다. 편리합니다. 시스템을 잘 설계하세요. 오늘은 php5.0에서 제공하는 매직 메소드에 대해 알아보겠습니다.

마법 함수를 사용한 php와 마술 함수를 사용하지 않은 php의 비교


/**
* use magic 0.31868386268616s
* not use magic 0.11876797676086s
*/
class Test {
  private $varstr = "123";

  function __get($name) {
    return $this->varstr;
  }
}

function microtime_float()
{
  list($usec, $sec) = explode(" ", microtime());
  return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

$i = 0;
while ($i<100000) {
  $i++;
  $t = new Test();
  $t->varstr;
}

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "Did nothing in $time seconds\n";
로그인 후 복사

PHP 마술 함수를 최대한 적게 사용하는 것이 좋습니다

위 내용은 PHP의 매직 함수 및 매직 상수 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿