PHP로 클래스(instanceof)로 전환




php instanceof (2)

다음이 더 정확합니다.

$class = get_class($objectToTest);

switch($class) {  
    case TreeRequest::class:
        echo "tree request";
        break;
    case GroundRequest::class:
        echo "ground request";
        break;
}

이 방법은 네임 스페이스가 적절히 비교되므로 (네임 스페이스를 입력 할 필요가 없음) 네임 스페이스 또는 클래스 이름과 같은 변경 사항이 있으면 코드가 손상되었다는 알맞은 IDE 오류가 발생합니다.

if( .. instanceof ...), elseif(... instanceof ...), ... 블록을 switch로 대체 할 수 있습니까?

예 :

<?php
$class = ..... //some class

if($class instanceof SomeClass) {
    //do something
} elseif($class instanceof SomeAnotherClass) {
    //do something else
}

몇몇은 이것을 좋아한다 :

$class = get_class($objectToTest);

switch($class) {  
    case 'TreeRequest':
        echo "tree request";
        break;
    case 'GroundRequest':
        echo "ground request";
        break;
}

아니면 이거:

switch(true) {  
    case $objectToTest instanceof TreeRequest:
        echo "tree request";
        break;
    case $objectToTest instanceof GroundRequest:
        echo "ground request";
        break;
}




instanceof