我需要知道关于魔法函数__isset()和普通函数isset()的知识。实际上,php语言构造isset()和php神奇方法__isset()的真正区别是什么?当我在谷歌上搜索它时,他们告诉我__isset()是一个神奇的功能。常见的php函数和php中的魔术函数有什么区别?
发布于 2014-01-25 01:58:25
当发生某些事情时,魔术函数会自动调用(触发)。普通函数必须由php代码专门调用。
在您的示例中:__isset()将在您的isset()试图获取不可访问的属性时自动调用。
示例:
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发布于 2014-04-14 22:23:13
isset()用于变量,__isset()用于类的属性。
https://stackoverflow.com/questions/21227585
复制相似问题