Was der PHP-Hinweis bedeutet und wie er reproduziert werden kann:
Wenn Sie ein PHP-Array an eine Funktion senden, die eine Zeichenfolge wie: echooder erwartet print, konvertiert der PHP-Interpreter Ihr Array in die Literalzeichenfolge Array, werfen Sie diesen Hinweis und fahren Sie fort. Beispielsweise:
php> print(array(1,2,3))
PHP Notice: Array to string conversion in
/usr/local/lib/python2.7/dist-packages/phpsh/phpsh.php(591) :
eval()'d code on line 1
Array
In diesem Fall gibt die Funktion printdie Literalzeichenfolge: Arrayto stdout aus und protokolliert dann die Benachrichtigung an stderr und fährt fort.
Ein weiteres Beispiel in einem PHP-Skript:
<?php
$stuff = array(1,2,3);
print $stuff; //PHP Notice: Array to string conversion in yourfile on line 3
?>
Sie haben zwei Möglichkeiten: entweder wandeln Sie Ihr PHP-Array mit einem Array-zu-String-Konverter in String um oder unterdrücken den PHP-Hinweis.
Korrektur 1: Verwenden Sie die eingebaute PHP-Funktion print_r oder var_dump:
http://php.net/manual/en/function.print-r.php oder http://php.net/manual/en/function.var-dump.php
$stuff = array(1,2,3);
print_r($stuff);
$stuff = array(3,4,5);
var_dump($stuff);
Drucke:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
array(3) {
[0]=>
int(3)
[1]=>
int(4)
[2]=>
int(5)
}
Korrektur 2: Verwenden Sie json_encode, um das Array auf json string zu reduzieren:
$stuff = array(1,2,3);
print json_encode($stuff); //Prints [1,2,3]
Korrektur 3: Zusammenfügen aller Zellen im Array:
<?php
$stuff = array(1,2,3);
print implode(", ", $stuff); //prints 1, 2, 3
print join(',', $stuff); //prints 1, 2, 3
?>
Korrektur 4: Unterdrücke die Hinweise:
error_reporting(0);
print(array(1,2,3)); //Prints 'Array' without a Notice.
$Texting[i]ein Tippfehler? Sollte das nicht$Texting[$i]stattdessen sein?