web-dev-qa-db-ja.com

空のチェックPHP配列

PHPの空の配列は誤ったものと見なされます。これは、配列が空であるため、以下は何も出力しないことを意味します。

_<?php
$myArray = array()

if ( $myArray ) {
  print "My Array is NOT empty";
}
_

配列に要素があるかどうかを判断するときに、この場合のより良い実践と考えられるもの:

  1. if ( !empty( $myArray ) )を使用するには
  2. if ( myArray )を使用するには

注意:この質問は主観についてのものではありません。私のチームメイトがどう思うかは気にしません。業界のベストプラクティスに関心があります。

3
Ally

条件の目的が配列に要素が含まれていないことを確認することである場合は、count($array) === 0を使用するのが最善かつ最も読みやすいソリューションです。

6
Thijs Riezebeek

これはPHPでは正しい方法です。以下の形式を使用してください:

$array = array(......);  

  if(!empty($myArray) && count($myArray) > 0){

        echo 'array is not empty';

}
0
Vimal Kumar

_loose type_はPHPの問題の1つですが、優れた開発者により高い柔軟性を提供します。

すでに$myArray = array();を定義している場合は、if ($myArray)を使用できます。これは、それが配列であることをすでに知っているためです。また、名前からも配列であることがわかります。 falsyのケースは、_$myArray_が空の場合にのみ発生します。

ただし、count()関数があるため、_$myArray_を指定する必要はありません。空かどうかを確認してくださいCountable。カウントできないものの文字列を渡すと、警告がスローされます。 (PHP7.2以上)

PHPでコーディングしているため、何をするにしても、if (!empty($myArray))を実行する意味はありません。 falsy値を利用する必要があります。

0
Huawei Chen

そのときに配列からデータを取得する場合は、if ( $myArray )が最も簡単な方法です。

if ( $myArray )は、配列に要素がない場合に発生する可能性のある偽のケースです。

_( $myArray )_は連想配列には適用されません。

そのときに配列が空であるかどうかを確認する場合は、if ( empty( $myArray ) )を使用できます。これにより、すべてのタイプの配列のパフォーマンスが向上します。if ( empty( $myArray ) )は、空の配列を確認するためのより良い方法です。

次の結果を検討できます。

_Contents  \method |    count     |    empty     
------------------|--------------|--------------|
            Empty |/* 1.213138 */|/* 1.070011 */|
          Uniform |/* 1.206680 */|   1.047339   |
          Integer |/* 1.209668 */|/* 1.079858 */|
           String |/* 1.242137 */|   1.049148   |
            Mixed |/* 1.229072 */|/* 1.068569 */|
      Associative |/* 1.206311 */|   1.053642   |
------------------|--------------|--------------|
            Total |/* 7.307005 */|   6.368568   |
_
0
AjayGohil

それは、コードを読んでいる「典型的な」聴衆に依存すると思います。

  1. 初心者であるか、PHPにあまり慣れていない、またはより冗長な言語(Javaなど)から来る可能性が高い場合は、より長く、より明示的なif ( !empty( $myArray ) )がより明確になります。

  2. PHP、C、JavaScriptなどの経験が中程度であれば、より簡潔で慣用的なif ( $myArray )が私の好みです。

0
user949300