Résoudre l'erreur PHP : éléments à prendre en compte lors de la conversion d'un tableau en chaîne
P粉538462187
P粉538462187 2023-08-21 12:23:52
0
2
546
<p>J'ai un fichier PHP et j'essaye de sortir un <code>$_POST</code>, mais j'obtiens une erreur, voici le code : </p> <pre class="brush:php;toolbar:false;">echo "<html>"; echo "<corps>"; pour($i=0; $i<5;$i++){ echo "<input name='C[]' value='$Texting[$i]' " . "style='background-color:#D0A9F5;'></input>"; } echo "</corps>"; echo "</html>"; echo '<input type="submit" value="Enregistrer la table" name="G"></input>'</pre> <p>Voici le code pour afficher le POST. </p> <pre class="brush:php;toolbar:false;">if(!empty($_POST['G'])){ echo $_POST['C']; }</pré> <p>Mais lorsque le code s'exécute, j'obtiens une erreur comme celle-ci : </p> <pre class="brush:php;toolbar:false;">Remarque : conversion de tableau en chaîne dans C:xampphtdocsPHISFinalSubmissionOfTheFormPHP.php en ligne 8</pre> <p>Que signifie cette erreur et comment puis-je la corriger ? </p>
P粉538462187
P粉538462187

répondre à tous(2)
P粉986860950

Que signifie PHP Notice et comment le reproduire :

Si vous transmettez un tableau PHP à une fonction qui attend une chaîne, telle que echoprint,那么PHP解释器会将你的数组转换为字面字符串Array, lancez cet avis et continuez l'exécution. Par exemple :

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

Dans ce cas, la fonction print将字面字符串Array sort sur stdout, puis enregistre l'avis sur stderr et continue l'exécution.

Autre exemple de script PHP :

<?php
    $stuff = array(1,2,3);
    print $stuff;  //PHP Notice:  Array to string conversion in yourfile on line 3
?>

Méthode de correction 1 : utilisez la boucle foreach pour accéder aux éléments du tableau

http://php.net/foreach

$stuff = array(1,2,3);
foreach ($stuff as $value) {
    echo $value, "\n";
}

Sortie :

1
2
3

Ou contient le nom de la clé du tableau :

$stuff = array('name' => 'Joe', 'email' => 'joe@example.com');
foreach ($stuff as $key => $value) {
    echo "$key: $value\n";
}

Sortie :

name: Joe
email: joe@example.com

Notez que les éléments du tableau peuvent également être des tableaux. Dans ce cas, il peut être réutilisé foreach或使用数组语法访问内部数组元素,例如$row['name']

Correction 2 : Joignez toutes les cellules du tableau ensemble :

S'il s'agit simplement d'un tableau unidimensionnel normal, vous pouvez utiliser des délimiteurs pour concaténer toutes les cellules en une chaîne :

<?php
    $stuff = array(1,2,3);
    print implode(", ", $stuff);    //输出 1, 2, 3
    print join(',', $stuff);        //输出 1,2,3

Méthode de correction 3 : Convertir un tableau de structure complexe en chaîne :

Si votre tableau a une structure complexe mais que vous devez quand même le convertir en chaîne, vous pouvez utiliser http://php.net/json_encode

$stuff = array('name' => 'Joe', 'email' => 'joe@example.com');
print json_encode($stuff);

Sortie :

{"name":"Joe","email":"joe@example.com"}

Affichez rapidement la structure du tableau : utilisez les fonctions php intégrées

Si vous souhaitez simplement inspecter le contenu du tableau à des fins de débogage, vous pouvez utiliser l'une des fonctions suivantes. Gardez à l'esprit que var_dump est le plus verbeux de tous et est généralement préféré à cette fin

Exemple :

$stuff = array(1,2,3);
print_r($stuff);
$stuff = array(3,4,5);
var_dump($stuff);

Sortie :

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
array(3) {
  [0]=>
  int(3)
  [1]=>
  int(4)
  [2]=>
  int(5)
}
P粉739886290

Quand tu as beaucoup de noms C[]的HTML输入时,你在POST数组的另一端得到的是这些值的数组$_POST['C']。所以当你echo它时,你正在尝试打印一个数组,所以它只会打印Array et un indice.

Pour imprimer correctement un tableau, vous pouvez effectuer une boucle dessus et echo每个元素,或者你可以使用print_r.

De plus, si vous ne savez pas s'il s'agit d'un tableau, d'une chaîne ou autre, vous pouvez utiliser var_dump($var) et il vous dira de quel type il s'agit et quel est son contenu. À des fins de débogage uniquement.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!