>  기사  >  백엔드 개발  >  PHP에서 is_a() 함수와 instanceof의 차이점은 무엇입니까?

PHP에서 is_a() 함수와 instanceof의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2019-03-06 10:06:523399검색

PHP의 is_a() 함수와 instanceof 연산자의 함수는 유사합니다. 그렇다면 차이점은 무엇인가요? 다음 글에서는 is_a() 함수와 instanceof에 대한 간략한 이해를 제공하고 is_a() 함수와 instanceof의 차이점을 소개하겠습니다. [동영상 튜토리얼 추천: PHP 튜토리얼]

PHP is_a() 함수

is_a() 함수는 PHP에 내장된 함수로 주어진 객체가 주어진 클래스에 속하는지 확인하는 함수입니다. ; 또한 주어진 클래스가 주어진 객체의 상위 클래스 중 하나인지 확인합니다.

기본 구문:

is_a( $object, $class_name, $allow_string )

매개변수: is_a() 함수는 다음 세 가지 매개변수를 사용할 수 있습니다.

●Object: 테스트 개체를 저장하는 데 사용됩니다.

● class_name : 클래스 이름을 저장하는데 사용됩니다.

● allow_string: 설정값이 False인 경우 문자열 클래스 이름을 객체로 사용할 수 없습니다.

반환 값: 객체가 주어진 클래스에 속하거나 이 클래스가 상위 클래스 중 하나인 경우 is_a() 함수는 True를 반환하고, 그렇지 않으면 False 값을 반환합니다.

코드 예제를 통해 is_a() 함수에 대해 알아봅시다.

<?php  
class hello {  
    var $store = &#39;Hello PHP!&#39;;  
}  
    
$PHP= new hello();  
    
// 检查$PHP是否是hello类的对象
if (is_a($PHP, &#39;hello&#39;)) {  
    echo "Yes";  
}  
    
?>

출력:

Yes

PHP 인스턴스 오브 연산자

객체가 클래스의 인스턴스화된 인스턴스인지 확인하려면 PHP에서 인스턴스 오브 연산자를 사용하세요.

기본 구문:

$a instanceof MyClass

연산자: instanceof 연산자에는 다음 두 피연산자가 포함됩니다.

● $a: 개체를 나타냅니다.

● MyClass: 클래스 이름을 나타냅니다.

반환 값: 객체가 지정된 클래스에 속하거나 이 클래스가 상위 클래스 중 하나로 있으면 True이고, 그렇지 않으면 False 값을 반환합니다.

예제를 통해 instanceof 연산자에 대해 알아봅시다.

<?php  
class hello {  
    var $store = &#39;Hello PHP!&#39;;  
}  
    
$PHP= new hello();  
    
// 检查$PHP是否是hello类的对象
if ($PHP instanceof hello) {  
    echo "Yes";  
}  
?>

출력:

Yes

is_a() 함수와 인스턴스 오브 연산자의 차이점

● is_a()는 함수이고, 인스턴스 오브는 언어 구성입니다. is_a() 함수는 함수 호출을 수행하는 데 드는 모든 오버헤드를 갖기 때문에 상당히 느려질 것입니다.

● 함수 콜백(array_map 등)의 경우, instanceof는 함수가 아니기 때문에 언어 구성체이므로 콜백으로 사용할 수 없습니다. 그러나 is_a() 함수에서는 콜백을 사용할 수 있습니다.

● InstanceOf에서 직접 클래스 이름을 사용하는 시간은 is_a() 함수보다 짧습니다.

예:

//语法短(比较)
$a instanceof MyClass
is_a( $a, MyClass::class )

● is_a()는 객체를 매개변수 1로, 문자열을 매개변수 2로 사용하는 함수인 반면, instanceof는 객체를 매개변수 1로 사용하고 클래스 이름, 객체 인스턴스 또는 클래스를 사용할 수 있습니다. 식별자( 따옴표가 없는 클래스 이름)을 매개변수 2로 사용합니다.

is_a() 예시:

//只有这样才能调用它
is_a($object,$string);

instanceof 예시:

//对象实例      
$object instanceof $otherObject; 
//字符串类名
$object instanceof $string;
//类的标识符
$object instanceof ClassName;

위는 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 PHP에서 is_a() 함수와 instanceof의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.