recherche

Maison  >  Questions et réponses  >  le corps du texte

Résoudre l'erreur PHP : éléments à prendre en compte lors de la conversion d'un tableau en chaîne

<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粉538462187P粉538462187533 Il y a quelques jours616

répondre à tous(2)je répondrai

  • P粉986860950

    P粉9868609502023-08-22 09:46:05

    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)
    }

    répondre
    0
  • P粉739886290

    P粉7398862902023-08-22 00:07:45

    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.

    répondre
    0
  • Annulerrépondre