检查对象是否已赋予属性

时间:2015-06-20 15:01:41

标签: php oop

除了执行类似下面的代码之外,是否有更好的方法来检查对象是否具有多个给定属性?

td{
  display: inline-block;
}

tr:first-child td:nth-of-type(3){
  width: 100px;
}
tr:last-child td:nth-of-type(4){
  width: 50px;
}

1 个答案:

答案 0 :(得分:1)

您可以使用至少三种方法来执行此操作:

所有这些都在下面说明:

<?php
class myClass
{
    public $a=1;
    public $b=2;
    public $c=3;
}

$myObj = new myClass();
$reflectionClass = new ReflectionClass($myObj);
foreach (['a', 'b', 'c', 'd'] as $property)
{
    printf("Checking if %s exists: %d %d %d\n",
        $property,
        property_exists($myObj, $property),
        isset($myObj->$property),
        $reflectionClass->hasProperty($property));
}

输出:

Checking if a exists: 1 1 1
Checking if b exists: 1 1 1
Checking if c exists: 1 1 1
Checking if d exists: 0 0 0

每一栏都是从我的帖子顶部应用相应技术的结果。