> 백엔드 개발 > PHP 튜토리얼 > PHP의 인스턴스 오브 키워드는 무엇입니까? 그것을 사용하는 방법?

PHP의 인스턴스 오브 키워드는 무엇입니까? 그것을 사용하는 방법?

伊谢尔伦
풀어 주다: 2023-03-10 22:58:02
원래의
1966명이 탐색했습니다.

instanceof 키워드가 무엇인가요?

PHP5에는 instdnceof 키워드가 새로 추가되었습니다. 이 키워드를 사용하여 객체 가 클래스의 인스턴스인지, 클래스의 하위 클래스인지, 특정 인터페이스를 구현하는지 확인하고 해당 작업을 수행합니다. 어떤 경우에는 클래스가 특정 유형인지 또는 특정 인터페이스를 구현하는지 확인하고 싶습니다. instanceofoperator는 이 작업에 적합합니다. instanceof 연산자는 세 가지 사항, 즉 인스턴스가 특정 유형인지 여부, 인스턴스가 특정 유형에서 상속되는지 여부, 인스턴스 또는 해당 상위 클래스 중 하나가 특정 인터페이스를 구현하는지 여부를 확인합니다. 예를 들어, Manager라는 객체가 Employee 클래스의 인스턴스인지 알고 싶다고 가정해 보겠습니다.

$manager = new Employee();
…
if ($manager instanceof Employee)
  echo "Yes";
로그인 후 복사

주목할 만한 두 가지 사항이 있습니다. 첫째, 클래스 이름에는 구분 기호(따옴표)가 없습니다. 구분 기호를 사용하면 구문 오류가 발생합니다. 둘째, 비교가 실패하면 스크립트는 실행을 exit합니다. instanceof 키워드는 동시에 여러 개체를 작업할 때 특히 유용합니다. 예를 들어, 함수를 반복적으로 호출하지만 객체 유형에 따라 함수의 동작을 조정하려고 할 수 있습니다. 이 목표를 달성하기 위해 Case 문과 instanceof 키워드를 사용할 수 있습니다.

class test{}
class test{}
class testChilern Extends test{}
$a = new test();
$m = new test();
$i = ($m instanceof test);
if($i)
  echo &#39;$m是类test的实例!<br />&#39;; // get this value
switch ($a instanceof test){
  case true :
    echo &#39;YES<br />&#39;;
    break;
  case false :
    echo &#39;No<br />&#39;; //get this value
    break;
}
$d=new testChilern();
if($d instanceof test)echo &#39;$d是类test的子类!<br />&#39;; // get this value
로그인 후 복사

php

instanceof의 기능은 무엇입니까? 기능: (1) 객체가 특정 클래스의 인스턴스인지 확인합니다. (2) 객체가 특정 인터페이스를 구현하는지 확인합니다.

첫 번째 사용법:

<?php
$obj = new A();
if ($obj instanceof A) {
  echo &#39;A&#39;;
}
로그인 후 복사

두 번째 사용법:

<?php
interface ExampleInterface
{
   public function interfaceMethod();
 }
 class ExampleClass implements ExampleInterface
{
   public function interfaceMethod()
   {
     return &#39;Hello World!&#39;;
   }
 }
$exampleInstance = new ExampleClass();
 if($exampleInstance instanceof ExampleInterface){
   echo &#39;Yes, it is&#39;;
 }else{
   echo &#39;No, it is not&#39;;
} 
?>
로그인 후 복사

출력 결과: Yes, it is

또한, instanceof와 is_subclass_of()의 차이점에 주의하세요. 코드를 참조하세요.

<?php
class Foo {
   public $foobar = &#39;Foo&#39;;
   public function test() {
     echo $this->foobar . "\n";
   }
 }
 class Bar extends Foo {
   public $foobar = &#39;Bar&#39;;
 }
$a = new Foo();
$b = new Bar();
echo "use of test() method\n";
$a->test();
$b->test();
echo "instanceof Foo\n";
var_dump($a instanceof Foo); // TRUE
var_dump($b instanceof Foo); // TRUE
echo "instanceof Bar\n";
var_dump($a instanceof Bar); // FALSE
var_dump($b instanceof Bar); // TRUE
echo "subclass of Foo\n";
var_dump(is_subclass_of($a, &#39;Foo&#39;)); // FALSE
var_dump(is_subclass_of($b, &#39;Foo&#39;)); // TRUE
echo "subclass of Bar\n";
var_dump(is_subclass_of($a, &#39;Bar&#39;)); // FALSE
var_dump(is_subclass_of($b, &#39;Bar&#39;)); // FALSE
?>
로그인 후 복사

출력 결과(PHP 5.4.4):

 use of test() method
 Foo
 Bar
 instanceof Foo
 bool(true)
 bool(true)
 instanceof Bar
 bool(false)
 bool(true)
 subclass of Foo
 bool(false)
 bool(true)
 subclass of Bar
 bool(false)
로그인 후 복사

위 내용은 PHP의 인스턴스 오브 키워드는 무엇입니까? 그것을 사용하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿