본문 바로가기

저세상 해킹/웹

PHP - Magic Method

매직메소드는 항상 클래스에 정의되어 있는 메소드로, __로 시작함

 

__construct() : 생성자, 객체 생성시 처음으로 호출, 부모 생성자를 호출하지 않고, parent::__construct()로 호출

 

__destruct() : 소멸자, 객체 파괴시 호출, 부모 생성자 호출X -> parent::__destruct()로 호출함

 

__get(), __set() : 일반적인 getter와 setter라고 생각하자

 

__isset(), __unset() : 클래스내의 프로퍼티를 isset(), unset()으로 호출했을때 실행됨

 

__call(), __callstatic() : 정의되지 않은 메소드 호출시 호출, 후자는 static 호출시 발동함

 

__toString() : 클래스의 내부를 문자열화 해서 return(JAVA의 그것과 같음)

 

__debuginfo() : var_dump(객체)와 같이 호출했을때 발동함.

 

그러니까 앞에 설명할 php object injection이 성립되려면 위와같은 매직메소드가 정의되어있어야 함.

'저세상 해킹 > ' 카테고리의 다른 글

PHP Object Injection  (0) 2019.09.16