>  기사  >  백엔드 개발  >  PHP 유형 연산자인 인스턴스 오브(instanceof)는 무엇입니까? 사용하는 방법?

PHP 유형 연산자인 인스턴스 오브(instanceof)는 무엇입니까? 사용하는 방법?

伊谢尔伦
伊谢尔伦원래의
2017-06-21 16:04:141737검색

PHP5에서는 메소드를 통해 전달되는 변수의 유형이 불확실합니다. 현재 인스턴스가 이러한 형식을 가질 수 있는지 확인하려면 instanceof연산자를 사용하세요. 현재 인스턴스가 instanceof를 사용하여 현재 클래스, 상위 클래스(위로 무한 추적) 및 구현된 인터페이스와 비교하면 true를 반환합니다.

"instanceof"operator 사용은 매우 간단합니다. 두 개의 매개변수를 사용하여 기능을 완성합니다. 첫 번째 매개변수는 확인하려는 객체이고, 두 번째 매개변수는 이 객체가 해당 클래스의 인스턴스인지 확인하는 데 사용되는 클래스 이름(실제로는 인터페이스 이름)입니다. 물론, 위의 용어는 이 연산자가 얼마나 직관적으로 사용되는지를 알기 위해 사용된 것입니다. 기본 구문은 다음과 같습니다.

if (object instanceof class name){
 //做一些有用的事情
}

instanceof 연산자 적용

<?php
class User{
private $name;
public function  getName(){
return "UserName is ".$this->name;
}
}
class NormalUser extends User {
private $age = 99;
public function getAge(){
return "age is ".$this->age;
}
}
class UserAdmin{ //操作.
public static function  getUserInfo(User $_user){
echo $_user->getAge();
}
}
$normalUser = new NormalUser();
UserAdmin::getUserInfo($normalUser);
?>

프로그램 실행 결과: age is 99

User 클래스에는 해당 메소드가 없기 때문에 오류가 보고됩니다.

<?php
class User{
private $name;
public function  getName(){
return "UserName is ".$this->name;
}
}
class NormalUser extends User {
private $age = 99;
public function getAge(){
return "age is ".$this->age;
}
}
class UserAdmin{ //操作.
public static function  getUserInfo(User $_user){
echo $_user->getAge();
}
}
$User = new User(); // 这里new的是User.
UserAdmin::getUserInfo($User);
?>

프로그램 실행 결과:

Fatal error:  Call to undefined method User::getAge() in
E:\PHPProjects\NowaMagic\php\php_InstanceofOperator.php on line 99

연산자의 인스턴스를 사용하여 연산 전 유형 판단을 수행합니다. 코드의 보안을 보장합니다.

<?php
class User{
private $name;
public function  getName(){
return "UserName is ".$this->name;
}
}
class NormalUser extends User {
private $age = 99;
public function getAge(){
return "age is ".$this->age;
}
}
class UserAdmin{ //操作.
public static function  getUserInfo(User $_user){
if($_user instanceof NormalUser ){
echo $_user->getAge();
}else{
echo "类型不对,不能使用这个方法.";
}
}
}
$User = new User(); // 这里new的是User.
UserAdmin::getUserInfo($User);
?>

프로그램 실행 결과: 유형이 잘못되어 이 방법을 사용할 수 없습니다.

위 내용은 PHP 유형 연산자인 인스턴스 오브(instanceof)는 무엇입니까? 사용하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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