以下の理由で、array()
が関数に渡されます。私はarray()
の機能を理解できません。 $ _POSTに値がない場合、array()
が渡されますが、値はarray()
になりますか?私はPHPの配列()に固執していますか?
SomeFunction($_POST ? $_POST : array());
以下の理由で、array()
が関数に渡されます。私はarray()
の機能を理解できません。 $ _POSTに値がない場合、array()
が渡されますが、値はarray()
になりますか?私はPHPの配列()に固執していますか?
SomeFunction($_POST ? $_POST : array());
array()
それは言語構造ですが、それ自体は関数ではありません。しかし、単にarray()
を使用すると、空の配列、つまり要素がゼロになります。あなたは、おそらくのためにチェックしたい
:
isset($_POST) ? $_POST : array()
が編集:グレッグで指摘したように
、$_POST
は常に設定されます。したがって、それをチェックして空の配列を返す必要はありません。 someFunc($_POST)
はまったく同じことを行う必要があります。
array()は機能ではなく、language construct to create a new arrayです。引数が指定されていない場合(関数の用語を許す)、空の配列が作成されます。 PHP配列の違いとは... Java配列は、新しい要素が追加されるとPHP配列が動的にサイズ変更されるということです。しかし、array() - コンストラクトも、のkey => value-pairsのコンマ区切りのリストとしてパラメータをとります。
だから、あなたは、次の方法で配列を作成することができます
$empty = array();
$autoIndexed = array (1, 2, 3);
$associative = array('key1' => 1, 'key2' => 2);
var_dump($empty, $autoIndexed, $associative);
// Prints:
Array()
Array (
[0] => 1
[1] => 2
[2] => 3
)
Array (
[key1] => 1
[key2] => 2
)
あなたが、その場合にはノーだったふりをより行うには良いものがある、古代のPHPでない限り$ _POST必ず設定する必要がありますPOSTデータ。 – Greg
はい、そうです。それを考えていない。空の$ _POSTが少なくとも空の配列になるので、この質問は全くばかげていることを意味します。 – knittl
私はあなたが意味すると思います: empty($ _ POST)? array():$ _POST – Josh