Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 PHP中__isset()方法详解

PHP中__isset()方法详解

发布时间:2020-11-24   编辑:www.jquerycn.cn
jquery中文网为您提供PHP中,,isset()方法详解等资源,欢迎您收藏本站,我们将为您提供最新的PHP中,,isset()方法详解资源
__isset(),当对不可访问属性调用isset()或empty()时调用

在看这个方法之前我们看一下isset()函数的应用,isset()是测定变量是否设定用的函数,传入一个变量作为参数,如果传入的变量存在则传回true,否则传回false。

那么如果在一个对象外面使用isset()这个函数去测定对象里面的成员是否被设定可不可以用它呢?

分两种情况,如果对象里面成员是公有的,我们就可以使用这个函数来测定成员属性,如果是私有的成员属性,这个函数就不起作用了,原因就是因为私有的被封装了,在外部不可见。那么我们就不可以在对象的外部使用isset()函数来测定私有成员属性是否被设定了呢?当然是可以的,但不是一成不变。

你只要在类里面加上一个__isset()方法就可以了,当在类外部使用isset()函数来测定对象里面的私有成员是否被设定时,就会自动调用类里面的__isset()方法了帮我们完成这样的操作。

__isset()的作用:

当对不可访问属性调用 isset() 或 empty() 时,__isset() 会被调用。

请看下面代码演示:

<?php
class Person
{
    public $sex;
    private $name;
    private $age;
    public function __construct($name="",  $age=25, $sex='男')
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    /**
     * @param $content
     *
     * @return bool
     */
    public function __isset($content) {
        echo "当在类外部使用isset()函数测定私有成员{$content}时,自动调用<br>";
        echo  isset($this->$content);
    }
}
$person = new Person("小明", 25); // 初始赋值
echo isset($person->sex),"<br>";
echo isset($person->name),"<br>";
echo isset($person->age),"<br>";

运行结果如下:

1 // public 可以 isset()
当在类外部使用isset()函数测定私有成员name时,自动调用 // __isset() 内 第一个echo
1 // __isset() 内第二个echo
当在类外部使用isset()函数测定私有成员age时,自动调用 // __isset() 内 第一个echo
1 // __isset() 内第二个echo

以上就是PHP中__isset()方法详解的详细内容,更多请关注jquery中文网其它相关文章!

  • 本文原创发布jQuery中文网,转载请注明出处,感谢您的尊重!
  • 您可能感兴趣的文章:
    PHP中__isset()方法详解
    正确理解 PHP 的重载
    php以__开头的方法是什么
    PHP之十六个魔术方法详解(总结)
    PHP5面向对象详解 - (10) __set() __get() __isset() __unset()四个方法
    如何理解php重载
    php入门教程(十四) php面向对象中的魔术方法 __set()、__get()、__isset() 与 __unset()
    魔术方法__get()和__set()详解
    php中__get()和__set()用法介绍
    php 魔术方法有哪些,作用是什么?

    [关闭]