php 의 instanceof 와 판단 폐쇄 클 로 저 조작 예시

이 글 은 phop 의 인 스 턴 스 of 와 폐쇄 클 로 저 를 판단 하 는 사례 를 담 고 있다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
형식 연산 자
instanceof 는 PHP 변수 가 특정한 클래스class에 속 하 는 지 확인 하 는 데 사 용 됩 니 다.그 전에 is 를 사용 합 니 다.a(),하지만 나중에 isa()폐기

<?php
class MyClass
{
}
class NotMyClass
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

이상 루틴 출력:
bool(true)
bool(false)
instanceof 도 하나의 변수 가 특정한 부모 클래스 의 하위 클래스 를 계승 하 는 지 확인 하 는 데 사용 할 수 있 습 니 다.
Example\#2 상속 클래스 에 instanceof 사용

<?php
class ParentClass
{
}
class MyClass extends ParentClass
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

이상 루틴 출력:
bool(true)
bool(true)
폐쇄 류
대표익명 함수클래스 에 사용 합 니 다.
익명 함수(PHP 5.3 에 도입)는 이 유형의 대상 을 생 성 합 니 다.과거 에는 세부 사항 을 실현 하 는 것 으로 여 겨 졌 지만 지금 은 그것 에 의존 해 뭔 가 를 할 수 있다.PHP 5.4 부터 이 종 류 는 익명 함수 가 생 성 된 후에 더 많은 통 제 를 할 수 있 는 방법 을 가지 고 있 습 니 다.
여기에 열거 한 방법 외 에 또 하나의__invoke방법 이 있다.이것 은 다른 것 과 실현 하기 위해 서invoke()마술 방법의 대상 은 일치 성 을 유지 하지만 익명 함 수 를 호출 하 는 과정 은 무관 합 니 다.
클래스 요약

Closure {
/*    */
__construct ( void )
public static Closure bind ( Closure $closure , object $newthis [, mixed $newscope = 'static' ] )
public Closure bindTo ( object $newthis [, mixed $newscope = 'static' ] )
}
Table of Contents
  • Closure::__construct-실례 화 를 금지 하 는 구조 함수
  • Closure::bind-패 킷 을 복사 하여 지정 한$this 대상 과 클래스 역할 영역 을 연결 합 니 다.
  • Closure::bindTo-현재 패 킷 대상 을 복사 하고 지정 한$this 대상 과 클래스 역할 도 메 인 을 연결 합 니 다.
  • 폐쇄 적 인지 아 닌 지 를 판단 하 다.
    
    if ( $this->{$method} instanceof Closure ) {
         return call_user_func_array($this->{$method},$args);
    } else {
         throw new Exception("Invalid Function");
    }
    //        
    if ( $class instanceof Closure ) {
    } else {
    }
    
    
    참고:
    http://php.net/manual/zh/language.operators.type.php
    http://php.net/manual/zh/class.closure.php
    더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
    본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기