PHP エラーの解決: 配列を文字列に変換するときに考慮すべきこと
P粉538462187
2023-08-21 12:23:52
<p>PHP ファイルがあり、<code>$_POST</code> を出力しようとしましたが、エラーが発生しました。コードは次のとおりです。</p>
<pre class="brush:php;toolbar:false;">echo "<html>";
echo "";
for($i=0; $i<5;$i ){
echo "<input name='C[]' value='$Texting[$i]' " 。
"style='background-color:#D0A9F5;'></input>";
}
echo "</body>";
echo "</html>";
echo '<input type="submit" value="テーブルを保存" name="G"></input>'</pre>
<p>POSTを出力するコードです。 </p>
<pre class="brush:php;toolbar:false;">if(!empty($_POST['G'])){
エコー $_POST['C'];
}</pre>
<p>しかし、コードを実行すると、次のようなエラーが発生します。 </p>
<pre class="brush:php;toolbar:false;">注意: での配列から文字列への変換
C:xampphtdocsPHISFinalSubmissionOfTheFormPHP.php の 8 行目</pre>
<p>このエラーは何を意味しますか?どうすれば修正できますか? </p>
PHP Notice の意味とその再現方法:
PHP 配列を、
この場合、関数echo
やprint
などの文字列を期待する関数に渡すと、PHP インタープリターは配列をリテラル文字列に変換しますArray
、この通知をスローして実行を続行します。例えば:### リーリーprint
はリテラル文字列
Arrayを stdout に出力し、通知を stderr に記録して実行を継続します。
別の PHP スクリプトの例: リーリー
修正方法1: foreachループを使用して配列要素にアクセスするhttp://php.net/foreach リーリー
出力:リーリー
または配列キー名を含めます:リーリー
出力:リーリー
配列要素も配列になる可能性があることに注意してください。この場合、foreach
修正方法 2: 配列内のすべてのセルを接続します:を再度使用するか、
$row['name']のような配列構文を使用して内部配列要素にアクセスできます。
修正方法3:複雑な構造の配列を文字列に変換:
配列の構造が複雑でも文字列に変換する必要がある場合は、
http://php.net/json_encodeを使用できます。 リーリー 出力:
リーリー配列構造をすばやく表示: 組み込みの php 関数を使用します
デバッグ目的で配列の内容を検査したいだけの場合は、次の関数のいずれかを使用できます。 var_dump はこれらすべての中で最も冗長であり、通常はこの目的に優先されることに注意してください。
http://php.net/print_rC[]
という名前の HTML 入力が多数ある場合、POST 配列の反対側で取得できるのは、これらの値の配列です。$_POST['C' ]
。したがって、echo
を実行すると、配列を出力しようとしているので、Array
とヒントが出力されるだけです。配列を適切に出力するには、配列をループして各要素を
echo
するか、print_r
を使用します。また、それが配列なのか文字列なのかその他なのかわからない場合は、
var_dump($var)
を使用すると、その型とその内容がわかります。デバッグ目的のみ。