php - isset() 会触发 __get 吗?为什么?

标签 php isset

class a {
   function __get($property){...}
}

$obj = new a();
var_dump(isset($obj->newproperty));

似乎答案是否定的,但为什么呢?

最佳答案

因为它检查__isset而不是使用 __get 检索它。

调用 __isset 是一个更好的选择,因为没有关于什么是空的标准。也许在类 null 的上下文中是一个可接受的值。您还可以有一个类,如果该成员不存在,它会返回一个新的空对象,这将破坏 isset($myObj->item),因为在这种情况下它总是返回 true。

关于php - isset() 会触发 __get 吗?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2306979/

相关文章:

PHP Amazon S3 上传速度

php - 如何根据另一个值设置一个值的符号

php - 什么会导致 isset() 和 in_array() 都错误地计算?

PHP isset 不适用于复选框

php - 如何检查索引是否存在并且在php中不为空

php - 使用带有字符串数组或字符串列表的 IN 子句的 CodeIgniter 查询绑定(bind)

javascript - 如何在不离开页面的情况下通过单击按钮显示 php 响应?

php - 基于 SQL 标志值的颜色编码 html 表格单元格

PHP向数据库发送空白信息

PHP Memcached 问题