1

我想知道是否可以简化我的 PHP 条件。

从:

/* Do nothing if there are no taxonomies. */
if(!property_exists(__CLASS__, 'taxonomies') || !$this->taxonomies || empty($this->taxonomies) || is_null($this->taxonomies)){
    return;
}

至:

/* Do nothing if there are no taxonomies. */
if(!property_exists(__CLASS__, 'taxonomies') || !$this->taxonomies){
    return;
}

!$this->taxonomies完成!is_null($this->taxonomies)了吗!empty($this->taxonomies)

  • 必须存在一个类属性。
  • 数据不得为 NULL。
  • 数据绝对不能为空。
  • 数据绝不能有错误值。
4

1 回答 1

2
  1. 是的,!$this->taxonomies检查是否$this->taxonomies不包含评估为 bool false 的值,其中包括empty string, NULL, FALSE, ZERO int,empty array可能还有其他值。
  2. 一般来说,!property_exists(__CLASS__, 'taxonomies')这似乎是一个糟糕的设计(这取决于你在做什么),但总的来说,你应该知道你正在使用什么实例以及它应该有什么相应的接口。所以taxonomies应该被定义,甚至应该有一个封装它的getter(例如getTaxonomies())。然后简单的检查if (!empty($obj->taxonomies))或简单的(无论你更喜欢什么)if(!$obj->taxonomies)就足够了。
于 2013-02-17T14:08:47.803 回答