이 글에서는 주로 PHP에서 흔히 사용되는 매직 메소드 관련 정보를 소개합니다. 매우 좋은 참조 값을 가지고 있습니다. 아래 편집기를 사용하여 살펴보겠습니다.
우리는 PHP에서 생성 메서드, 소멸자 메서드 및 기타 매직 변수와 같은 매직 메서드를 자주 사용합니다. 다음은 일반적으로 사용되는 몇 가지 매직 변수에 대한 요약입니다. ),destruct(),clone(),autoload(),tostring(),invoke(),set(),get(),unset(),isset(),call(),callstatic;
1 .constuct()Constructor
보통 객체를 인스턴스화한 후 객체의 속성을 초기화해야 합니다! 객체를 인스턴스화할 때 PHP 시스템은 자동으로 constructor()라는 메서드를 호출합니다. 우리는 이 메서드를 "생성자 메서드"라고 부릅니다. 그 중 생성자 메소드는 매개변수를 가질 수 없습니다!
<?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');
는 생성자 메서드와 쌍을 이루는 것입니다. 생성자 메서드는 객체가 "생성"될 때 시스템에 의해 자동으로 호출되는 반면, 소멸자 메서드는 객체가 "탄생"할 때 호출됩니다. 사라집니다." 시스템에서 자동으로 호출됩니다! 소멸자 메서드의 이름은 destruct()입니다. 여기에는 매개변수가 포함될 수 없습니다.
<?php //析构方法 public function destruct(){ } ?>
참고: 소멸자 메서드는 객체가 파괴되기 전에 호출됩니다!
기능:
소멸자 메서드는 일반적으로 개체 자체를 파괴하는 대신 개체가 점유하고 있는 추가 리소스를 해제하는 데 사용됩니다!
3.clone() cloning트리거 시간: 개체를 복제할 때 새 개체를 초기화하는 작업입니다//克隆方法在克隆对象的时候对新对象的初始化工作
public function clone(){
$this->is_clone=true;
}
생각:
복제된 개체가 여전히 Student인가요? 클래스의 인스턴스는 어떻습니까?
instanceof 연산자를 사용하여 판단할 수 있습니다! instanceof는 객체가 특정 클래스의 인스턴스인지 확인하는 데 사용됩니다!
두 개의 피연산자가 필요합니다. 앞은 객체 변수이고 뒤는 클래스 이름입니다! 부울 값을 반환합니다!
var_dump($stu instanceof Stu); //返回bool(true)
클래스 자동 로딩
존재하지 않는 클래스 호출 시 자동 호출! <?php
/**
* 自动加载类
* 需要什么类autoload会自动调用需要的文件
*
*/
public function autoload($class_name)
{
require_once "../Model/{$class_name}.class.php";
}
?>
객체가 문자열로 사용될 때 자동 호출
6.invoke()객체가 함수로 사용될 때 자동 호출
7, set ( )액세스할 수 없는 속성에 값을 할당할 때 자동으로 호출됩니다(예: 클래스 외부에서 개인 속성 호출)
8.get()액세스할 수 없는 속성 값을 가져올 때 자동으로 호출
9. unset()액세스할 수 없는 속성을 삭제할 때 자동으로 호출됨
10.isset()액세스할 수 없는 속성이 존재하는지 확인할 때 자동으로 호출됨
11.call()
접근할 수 없는 속성이 존재하는지 확인할 때 자동으로 호출됨 액세스할 수 있는 메서드가 호출됩니다<?php
class Stu{
public function call(){
echo "error";
}
}
$stu = new Stu();
//此时Stu类里没有show()方法,会触发call()函数
$stu->show();
액세스할 수 없는 메서드에 액세스할 수 없을 때 자동으로 트리거됩니다. 위 내용은 PHP에서 일반적으로 사용되는 매직 메소드는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!<?php
class Stu{
public static function callstatic(){
echo "error";
}
}
$stu = new Stu();
//此时Stu类里没有show()方法,会触发call()函数
$stu::show();