旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

PHP中__isset()要领详解【php教程】

作者:搜搜PHP网发布时间:2019-11-26分类:PHP教程浏览:94


导读:__isset(),当对不可接见属性挪用isset()或empty()时挪用在看这个要领之前我们看一下isset()函数的运用,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()要领详解的细致内容,更多请关注ki4网别的相干文章!

标签:PHP