私がループの巣の奥深くにいる場合、これらのどれがより効率的であるか疑問に思います:
if (!isset($array[$key])) $array[$key] = $val;
また
$array[$key] = $val;
読み取り可能なコードに関する限り、2番目の形式の方がはるかに望ましいです。実際には、名前は長く、配列は多次元です。したがって、最初のフォームは、私のプログラムではかなりぎこちなく見えてしまいます。
しかし、2番目の形式の方が遅いのではないかと思います。コードはプログラムで最も頻繁に実行される関数の1つであるため、より高速な形式を使用したいと思います。
一般的に、このコードは同じ値の「$key」で何度も実行されます。したがって、ほとんどの場合、$ array [$ key]はすでに設定されており、isset()はFALSEを返します。
私が同一でないコードを同一であるかのように扱っていることを恐れる人々のために明確にするために:プログラムのこの部分に関する限り、$valは定数です。実行時まではわかりませんが、プログラムの早い段階で設定されており、ここでは変更されません。したがって、どちらの形式でも同じ結果が得られます。そして、これは$valで取得するのに最も便利な場所です。