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. はい、bool falseと評価される値が含まれていないかどうかを!$this->taxonomies確認します。これには、、、、、およびその他が含まれます。$this->taxonomiesempty stringNULLFALSEZERO intempty array
  2. 一般に!property_exists(__CLASS__, 'taxonomies')、悪い設計のように見えますが(何をしているかによって異なります)、一般に、使用しているインスタンスと、それに対応するインターフェイスを知っておく必要があります。したがってtaxonomies、定義する必要があり、それをカプセル化するゲッター(getTaxonomies()など)も存在する必要があります。次に、単純なチェックif (!empty($obj->taxonomies))または単純に(もっと好きなものは何でも)if(!$obj->taxonomies)十分なはずです。
于 2013-02-17T14:08:47.803 に答える