php
5中,通过方法传递变量的类型有不确定性,使用instanceof
运算符
,可以判断当前实例是否可以有这样的一个形态。当前实例使用 instanceof与当前类,父类(向上无限追溯),已经实现的接口比较时,返回真。
"instanceof"
操作符
的使用非常简单,它用两个参数来完成其功能。第一个参数是你想要检查的
对象
,第二个参数是类名(事实上是一个接口名),用于确定是否这个对象是相应类的一个实例。当然,使用了上面的术语,这样就可以看到这个操作符的使用是多么直观。它的基本语法如下:
instanceof 运算符的运用
程序运行结果:age is 99
在User类中因为没有这个方法而报错:
立即学习
“
PHP免费学习笔记(深入)
”;
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
程序运行结果:
使用instatnceof运算符,在操作前先进行类型判断。以保障代码的
安全
性。
程序运行结果:类型不对,不能使用这个方法.
if (object instanceof class name){
//做一些有用的事情
}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);
?>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 99name;
}
}
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);
?>