php - 测试属性是否存在

标签 php

我在 php docs 上阅读isset()property_exists() 快,我们应该将两者结合使用

if (isset($this->fld) || property_exists($this, 'fld')) { 

但是为什么我不能只使用 isset 呢?

if (isset($this->fld)) {

最佳答案

因为 property_exists 会告诉您它是否甚至是类/对象的已定义属性,而 asisset 没有做出这种区分。例如:

class A {
  protected $hello;
}

class B {

}

class A 中使用 property_exists($this, 'hello') 将返回 true,而在 class B 中使用它 将返回 falseisset 将在 both 实例中返回 false

关于php - 测试属性是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3432779/

相关文章:

php - 删除链接无法获取要删除的项目的确切 ID

php - 这里需要一点关于 php 的帮助

php - 如何使用php在linux上获取c++编译结果

php 从文本中删除内容类型

php 到 excel - 德语元音变音

javascript - 来自 PHP mySQL 查询的 jQuery 自动完成

PHP如何将选择框值插入数据库

php - Mysql追加<p></p>

php - 格式化时间戳

php - 单击时,在更新 MySQL 数据库时隐藏 DIV