当前位置:Gxlcms > PHP教程 > php类型运算符instanceof是什么?怎么使用?

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

时间:2021-07-01 10:21:17 帮助过:3人阅读

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

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

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

instanceof 运算符的运用

  1. <?php
  2. class User{
  3. private $name;
  4. public function getName(){
  5. return "UserName is ".$this->name;
  6. }
  7. }
  8. class NormalUser extends User {
  9. private $age = 99;
  10. public function getAge(){
  11. return "age is ".$this->age;
  12. }
  13. }
  14. class UserAdmin{ //操作.
  15. public static function getUserInfo(User $_user){
  16. echo $_user->getAge();
  17. }
  18. }
  19. $normalUser = new NormalUser();
  20. UserAdmin::getUserInfo($normalUser);
  21. ?>

程序运行结果:age is 99

在User类中因为没有这个方法而报错:

  1. <?php
  2. class User{
  3. private $name;
  4. public function getName(){
  5. return "UserName is ".$this->name;
  6. }
  7. }
  8. class NormalUser extends User {
  9. private $age = 99;
  10. public function getAge(){
  11. return "age is ".$this->age;
  12. }
  13. }
  14. class UserAdmin{ //操作.
  15. public static function getUserInfo(User $_user){
  16. echo $_user->getAge();
  17. }
  18. }
  19. $User = new User(); // 这里new的是User.
  20. UserAdmin::getUserInfo($User);
  21. ?>

程序运行结果:

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

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

  1. <?php
  2. class User{
  3. private $name;
  4. public function getName(){
  5. return "UserName is ".$this->name;
  6. }
  7. }
  8. class NormalUser extends User {
  9. private $age = 99;
  10. public function getAge(){
  11. return "age is ".$this->age;
  12. }
  13. }
  14. class UserAdmin{ //操作.
  15. public static function getUserInfo(User $_user){
  16. if($_user instanceof NormalUser ){
  17. echo $_user->getAge();
  18. }else{
  19. echo "类型不对,不能使用这个方法.";
  20. }
  21. }
  22. }
  23. $User = new User(); // 这里new的是User.
  24. UserAdmin::getUserInfo($User);
  25. ?>

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

以上就是php类型运算符instanceof是什么?怎么使用?的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行