ホームページ >バックエンド開発 >PHPチュートリアル >PHPの型演算子instanceofとは何ですか?使い方?

PHPの型演算子instanceofとは何ですか?使い方?

伊谢尔伦
伊谢尔伦オリジナル
2017-06-21 16:04:141761ブラウズ

PHP5 では、メソッドを介して渡される変数の型は不確かです。現在のインスタンスがそのような形式を持つことができるかどうかを判断するには、instanceofoperator を使用します。現在のインスタンスが、instanceof を使用して、現在のクラス、親クラス (上方への無限トレース)、および実装されたインターフェイスと比較する場合、true を返します。

"instanceof"operator の使用は非常に簡単で、2 つのパラメーターを使用して関数を完了します。最初のパラメーターはチェックするオブジェクトで、2 番目のパラメーターはクラス名 (実際にはインターフェイス名) で、このオブジェクトが対応するクラスのインスタンスであるかどうかを判断するために使用されます。もちろん、上記の用語は、このオペレーターがいかに直感的に使用できるかを理解するために使用されています。基本的な構文は次のとおりです:

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);
?>

プログラム実行結果: 年齢は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

Operator のインスタンスを使用し、操作前に型判定を行います。コードのセキュリティを確保するため。

<?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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。