2009-06-24 15 views

答えて

3

array()それは言語構造ですが、それ自体は関数ではありません。しかし、単にarray()を使用すると、空の配列、つまり要素がゼロになります。あなたは、おそらくのためにチェックしたい

isset($_POST) ? $_POST : array() 

が編集:グレッグで指摘したように

$_POSTは常に設定されます。したがって、それをチェックして空の配列を返す必要はありません。 someFunc($_POST)はまったく同じことを行う必要があります。

+7

あなたが、その場合にはノーだったふりをより行うには良いものがある、古代のPHPでない限り$ _POST必ず設定する必要がありますPOSTデータ。 – Greg

+0

はい、そうです。それを考えていない。空の$ _POSTが少なくとも空の配列になるので、この質問は全くばかげていることを意味します。 – knittl

+0

私はあなたが意味すると思います: empty($ _ POST)? array():$ _POST – Josh

0

$ _POSTがtrueに評価されない場合は、空の配列を渡すだけです。
なぜ、わからない...

+0

私の質問は、空の配列conatianは何ですか?それはゼロの値を含んでいますか? –

+3

空の配列には何も含まれていません。 – Greg

+0

@Syed、関数SomeFunction()は配列を期待しています。コードは、配列がSomeFunction()に渡されることを保証する(悪い)試みです - $ _POSTか空の配列 – Josh

7

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 
) 
関連する問題