2016-07-05 2 views
-2

アレイの値を直接エコーすることができないのはなぜですか?配列内の値をPHPでエコーできない

$list = array('Max', 'Alice', 'Brigitte'); 
echo($list); //This doesn't work 

//But this does  
foreach($list as $l){ 
     echo($l . " "); 
    }; 

答えて

1

エコーので - 1つ以上の文字列を出力

http://php.net/manual/en/function.echo.php

は、アレイ http://php.net/manual/en/function.var-dump.php

か、私が説明することができた場合を見てみましょう http://php.net/manual/en/function.print-r.php

+0

また、すべての要素をまとめて文字列にすることもできます。 'echo implode("、 "、$ list);'。あるいは、 '$ list [1]'が "Alice"を出力するような関連インデックスを使って直接値にアクセスします(PHPは0で始まるため)。 – Qirel

-1

をしますprint_rためのvar_dumpを使用してみてくださいこれは良い方法で。基本的に$ listには、もっと多くの要素と関連するものがあります。 $ listをエコーすると、実際にそれをどのように処理するのか分かりません。これは、配列データ型がPHPでどのように機能するかと関係しています。

0

あなたはecho($list);は、いくつかの出力を生成しないことに気づいたかもしれません:

アレイ

$listechoのコンテキスト内の文字列にキャストされるためです。その文の文字列変換

にアレイ:あなたは警告がオンになっていた場合、実際には、あなたは

お知らせを見るでしょう。配列を文字列に変換するときのdefined behavior of PHPは、配列が常に文字列"Array"に変換されることです。

配列の内容をループせずに印刷したい場合は、配列をより効率的に文字列に変換するさまざまなPHP関数の1つを使用する必要があります。 $listのような単純な文字列の場合は、implodeを使用できます。

echo implode(', ', $list); 

しかし、あなたはこれが原因で文字列変換の問題に同じ配列では動作しません(一部の要素は、例えば、配列そのものをしている場合)、より複雑な配列に対処する必要がある場合。