ホームページ  >  記事  >  バックエンド開発  >  PHP が Array を要求した場合の対処方法

PHP が Array を要求した場合の対処方法

醉折花枝作酒筹
醉折花枝作酒筹転載
2021-04-06 11:29:222236ブラウズ

この記事では、配列を文字列として使用する方法について説明します。PHP では、配列から文字列への変換について 2 つの解決策が求められます。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHP が Array を要求した場合の対処方法

#最初のタイプ

この種のシナリオは比較的まれで、ほとんどがコミットされています。初心者による。エラーを見つけて解決するのも簡単です。文字通り、配列を文字列として使用することを意味します。

例:

$arr = array(0, 1, 2);
//错误1,双引号可以解析变量,但是双引号中,就会认为它是字符串。
var_dump("$arr");
//错误2
echo $arr;
この場合、結果が返されます:

PHP Notice: Array to string conversion in /path/test.php on line 5

解決策は、配列を文字列に変換して使用することです。たとえば、## を使用します。 #json_encode($arr)

;

2 番目のタイプ

この種のシナリオも比較的まれであり、何が問題だったのかを理解するのは困難です。プロンプト「配列から文字列への変換」を見てください。

curl
を使用する場合、post を通じてパラメーターを渡しますが、パラメーターが 2 次元配列の場合、このエラーが報告されます。これは驚くべきことです。 例:

$data = array([0], [1], [3]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
//报错行
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);

この問題の解決策も非常に簡単です。 http_build_query()

を使用してパラメータを処理するだけです。 curl を使用する場合は、すべてのパラメータを http_build_query で処理することをお勧めします。 <pre class="brush:php;toolbar:false">curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));</pre> 推奨学習:

php ビデオ チュートリアル

以上がPHP が Array を要求した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。