이 글에서는 주로 PHP에서 흔히 사용되는 매직 메소드 관련 정보를 소개합니다. 매우 좋은 참조 값을 가지고 있습니다. 편집기로 살펴보겠습니다
우리는 PHP에서 생성 메서드, 소멸자 메서드 및 기타 매직 변수와 같은 매직 메서드를 자주 사용합니다. 다음은 일반적으로 사용되는 몇 가지 매직 변수를 요약한 것입니다.
__construct(), __destruct(),__clone(),__autoload(),__tostring(),__invoke(),__set(),__get(),__unset(),__isset(),__call(),__callstatic;
1,__constuct ()Constructor
보통 객체를 인스턴스화한 후에는 객체의 속성을 초기화해야 합니다! 객체를 인스턴스화할 때 PHP 시스템은 자동으로 __construct()라는 메서드를 호출합니다. 우리는 이 메서드를 "생성자 메서드"라고 부릅니다.
그 중 생성자는 매개변수를 가질 수 없습니다!
<?php class Stu { public $stu_name; public $stu_age; //构造方法,实例化时自动调用 public function __construct($name,$age){ $this->stu_name = $name; $this->stu_age = $age; } } //实例化stu对象 $stu = new Stu('孙悟空','500');
2.__destruct() 소멸자 메서드
는 생성자 메서드와 쌍을 이루며, 생성자 메서드는 객체가 "생성"될 때 시스템에서 자동으로 호출됩니다. 개체가 "탄생"할 때 개체가 "사라질" 때 시스템에 의해 자동으로 호출됩니다!
소멸자 메서드의 이름은 __destruct()입니다. 여기에는 매개 변수가 포함될 수 없습니다.
<?php //析构方法 public function __destruct(){ } ?>
참고: 소멸자 메서드는 객체가 파괴되기 전에 호출됩니다!
기능:
소멸자 메서드는 일반적으로 개체 자체를 파괴하는 대신 개체가 점유하고 있는 추가 리소스를 해제하는 데 사용됩니다!
3 개체가 여전히 Student 클래스의 인스턴스인가요?
instanceof 연산자를 사용하여 판단할 수 있습니다!
instanceof는 객체가 특정 클래스의 인스턴스인지 확인하는 데 사용됩니다!
두 개의 피연산자가 필요합니다. 앞은 객체 변수이고 뒤는 클래스 이름입니다! 부울 값을 반환합니다!
4.__autoload()는 자동으로 클래스를 로드합니다.
존재하지 않는 클래스를 호출할 때 자동으로 호출됩니다!
//克隆方法在克隆对象的时候对新对象的初始化工作 public function __clone(){ $this->is_clone=true; }
5.__tostring()
객체가 문자열로 사용될 때 자동 호출var_dump($stu instanceof Stu); //返回bool(true)
객체가 함수로 사용될 때 자동 호출
7,__set()
접근할 수 없는 속성에 값을 할당할 때 자동 호출(예: 클래스 외부에서 private 속성 호출)
8.__get()
접근할 수 없는 속성 값을 얻을 때 자동 호출
9.__unset()
액세스할 수 없는 속성을 삭제할 때 자동으로 호출됩니다.
10.__isset()
액세스할 수 없는 속성이 있는지 확인할 때 자동으로 호출됩니다.
11 __call()
정상적인 경우 자동으로 트리거됩니다. 접근할 수 없는 메소드가 호출됩니다
위 내용은 이 글의 전체 내용이므로, 모든 분들의 학습에 도움이 되기를 바랍니다. PHP PDO 작업 요약_javascript 기술 PHP메서드 오버로딩을 사용하여 동적으로 생성된 속성_javascript 기술의 get 및 set 메서드 구현 _javascript Skills 위 내용은 PHP에서 일반적으로 사용되는 매직 메소드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!<?php
/**
* 自动加载类
* 需要什么类__autoload会自动调用需要的文件
*
*/
public function __autoload($class_name)
{
require_once "../Model/{$class_name}.class.php";
}
?>