Heim >Backend-Entwicklung >PHP-Problem >Was soll ich tun, wenn beim Ausführen von PHP-Code eine Array-zu-String-Konvertierung angezeigt wird?

Was soll ich tun, wenn beim Ausführen von PHP-Code eine Array-zu-String-Konvertierung angezeigt wird?

王林
王林nach vorne
2021-03-08 17:12:138068Durchsuche

Was soll ich tun, wenn beim Ausführen von PHP-Code eine Array-zu-String-Konvertierung angezeigt wird?

Vorwort:

Der Fehler bei der Array-zu-String-Konvertierung tritt auf, weil wir beim Schreiben des PHP-Skripts das Array als String verwenden.

Unter welchen Umständen tritt ein solcher Fehler auf?

Szenario 1:

Diese Art von Szenario wird relativ selten von Anfängern erstellt und es ist leicht, Fehler zu finden und zu beheben. Es bedeutet wörtlich, das Array als String zu verwenden.
Beispiel:

$arr = array(0, 1, 2);

//错误1,双引号可以解析变量,但是双引号中,就会认为它是字符串。
var_dump("$arr");
//错误2
echo $arr;

In diesem Fall wird das Ergebnis zurückgegeben:

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

Die Lösung besteht darin, das Array in einen String umzuwandeln und ihn dann zu verwenden: Verwenden Sie beispielsweise json_encode($arr);

(Lernvideo-Sharing : php-Video-Tutorial)

Szene 2:

Diese Art von Szenario kommt auch relativ selten vor und es ist schwierig zu verstehen, was schief gelaufen ist, wenn man sich nur die Eingabeaufforderung für die Array-zu-String-Konvertierung ansieht.

Wenn wir Curl verwenden und Parameter per Post übergeben und der Parameter ein zweidimensionales Array ist, wird dieser Fehler gemeldet, was erstaunlich ist.

Beispiel:

$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);

Die Lösung für dieses Problem ist ebenfalls sehr einfach

Verwenden Sie einfach http_build_query(), um die Parameter zu verarbeiten. Es wird empfohlen, bei Verwendung von Curl alle Parameter mit http_build_query zu verarbeiten.

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

Verwandte Empfehlungen: php-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn beim Ausführen von PHP-Code eine Array-zu-String-Konvertierung angezeigt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen