首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >isset()和__isset()有什么区别?

isset()和__isset()有什么区别?
EN

Stack Overflow用户
提问于 2014-01-20 14:31:14
回答 2查看 9.9K关注 0票数 59

我需要知道关于魔法函数__isset()和普通函数isset()的知识。实际上,php语言构造isset()和php神奇方法__isset()的真正区别是什么?当我在谷歌上搜索它时,他们告诉我__isset()是一个神奇的功能。常见的php函数和php中的魔术函数有什么区别?

EN

回答 2

Stack Overflow用户

发布于 2014-01-25 01:58:25

当发生某些事情时,魔术函数会自动调用(触发)。普通函数必须由php代码专门调用。

在您的示例中:__isset()将在您的isset()试图获取不可访问的属性时自动调用。

示例:

代码语言:javascript
复制
root@folgore:/tmp/php# cat a.php 
<?php
class a {
    private $att1;
    public $att2;

    function __isset($field) {
        echo "__isset invoked for $field\n";
    }
}

$obj=new a();

// __isset will be triggered:
isset($obj->att1);

// __isset will not be triggered:
isset($obj->att2);

root@folgore:/tmp/php# php a.php 
__isset invoked for att1
票数 1
EN

Stack Overflow用户

发布于 2014-04-14 22:23:13

isset()用于变量,__isset()用于类的属性。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21227585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档