Rumah > pembangunan bahagian belakang > tutorial php > php类型运算符instanceof是什么?怎么使用?

php类型运算符instanceof是什么?怎么使用?

伊谢尔伦
Lepaskan: 2023-03-10 22:54:01
asal
1828 orang telah melayarinya

PHP5中,通过方法传递变量的类型有不确定性,使用instanceof运算符,可以判断当前实例是否可以有这样的一个形态。当前实例使用 instanceof与当前类,父类(向上无限追溯),已经实现的接口比较时,返回真。

"instanceof"操作符的使用非常简单,它用两个参数来完成其功能。第一个参数是你想要检查的对象,第二个参数是类名(事实上是一个接口名),用于确定是否这个对象是相应类的一个实例。当然,使用了上面的术语,这样就可以看到这个操作符的使用是多么直观。它的基本语法如下:

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

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);
?>
Salin selepas log masuk

程序运行结果: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);
?>
Salin selepas log masuk

程序运行结果:

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

使用instatnceof运算符,在操作前先进行类型判断。以保障代码的安全性。

<?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);
?>
Salin selepas log masuk

程序运行结果:类型不对,不能使用这个方法.

Atas ialah kandungan terperinci php类型运算符instanceof是什么?怎么使用?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan