Récupération des données
Résolu/FerméLaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 17 mars 2023 à 15:43
- Récupération des données
- Logiciel de récupération de données - Guide
- Comment récupérer des messages supprimés sur whatsapp - Guide
- Validation des données excel - Guide
- Recuperation compte google - Guide
- Effacer les données de navigation - Guide
29 réponses
15 mars 2023 à 19:00
Bonjour je me permet de revenir une fois vers toi, toujours pour le même soucis. Peux tu me dire comment résoudre cette erreur s'il te plait, peut-être que cela va m'aider à solutionner mon problème. je te remercie.
Notice: Array to string conversion in C:
Je crois comprendre que j’essaye d'afficher une chaine de caractère alors que c'est un tableau ?
Merci
15 mars 2023 à 21:50
Peux tu me donner un conseil pour pouvoir résoudre se problème s'il te plait.
Merci
16 mars 2023 à 09:09
Moi je commencerais par faire des var_dump() des variables impliquées dans l'instruction qui cause cet avertissement.
16 mars 2023 à 14:55
Bonjour petit bout de code où j'ai fait les var_dump sur mes 3 variables concernées.
if (!empty($indice) && (is_array($indice) || is_object($indice))) { echo "la variable indice ne contient pas la bonne valeur ?"; $idnum = 1; $thisrec = 0; } else { $idnum = ($indice/1) ? 0 : 1; var_dump($indice); var_dump($champs); var_dump($idnum); $thisrec = !empty($donnees->$champs) && is_array($donnees->$champs) && $indice == $donnees->$champs[$idnum] ? 1 : 0 ; }
Voici le retour.
Notice: Array to string conversion in C:\wamp64\www\gestion\libs\class.liste.php on line 10 C:\wamp64\www\gestion\libs\class.liste.php:7:string '14' (length=2) C:\wamp64\www\gestion\libs\class.liste.php:8: array (size=3) 0 => string 'idaut' (length=5) 1 => string 'nom' (length=3) 2 => string 'prenom' (length=6) C:\wamp64\www\gestion\libs\class.liste.php:9:int 0
16 mars 2023 à 15:12
@yg_be au cas où, pour t'aider à lui répondre .. voici ce que je lui ai déjà indiqué à plusieurs reprises
Ceci devrait t'aider à convertir ton code en > php7 (du moins pour cette partie)
Décents jusqu'au chapitre : Changes to the handling of indirect variables, properties, and methods
16 mars 2023 à 17:16
@jordane45 Il reste $donnees->$champs, je peine à comprendre ce que cela faisait dans la version antérieure de php.
16 mars 2023 à 17:47
justement... c'est bien là son souci... ( les accolades/parenthèses indiquant a quel "ensemble" s'applique l'array )
$foo->$bar['baz'] //en php 5 $foo->{$bar['baz']} //en php 8 ($foo->$bar)['baz']
16 mars 2023 à 18:08
Oui, cela peut résoudre $donnees->$champs[$idnum].
Mais en ce qui concerne is_array($donnees->$champs), je peine à comprendre ce que cela faisait dans la version antérieure de php.
16 mars 2023 à 18:59
Ça c'est un ajout qui a été fait pour PHP 8
16 mars 2023 à 21:45
Bonjour, j'ai bien pris connaissance du lien en français en ce qui concerne "$donnees->$champs[$idnum]" à propos des accolades /parenthése mais je n'ai pas réussi à résoudre mon problème.
Expression Interprétation PHP 5 Interprétation PHP 7 $$foo['bar']['baz'] ${$foo['bar']['baz']} ($$foo)['bar']['baz'] $foo->$bar['baz'] $foo->{$bar['baz']} ($foo->$bar)['baz'] $foo->$bar['baz']() $foo->{$bar['baz']}() ($foo->$bar)['baz']() Foo::$bar['baz']() Foo::{$bar['baz']}() (Foo::$bar)['baz']()
non is_array($donnees->$champs) n'était pas dans la version antérieure...
$thisrec = !empty($donnees->$champs) && is_array($donnees->$champs) && $indice == ($donnees->$champs)[$idnum] ? 1 : 0 ;
16 mars 2023 à 21:53
montre alors le code de la version antérieure.
16 mars 2023 à 21:55
Je suis surpris: tu as mis les parenthèses au mauvais endroit. que penses-tu de ceci:
$donnees->($champs[$idnum])
16 mars 2023 à 22:23
Sûrement mieux avec des accolades
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question16 mars 2023 à 22:25
voici le code de la version antérieure qui fonctionne.
if($indice/1) { $idnum = 0; } else { $idnum = 1; }
if($indice == $donnees->$champs[$idnum]) { $thisrec = 1; } else { $thisrec = 0; }
cela me renvoie une erreur
Parse error: syntax error, unexpected '(', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in C:\wamp64\www\gestion\libs\class.liste.php on line 233
if (!empty($indice) && (is_array($indice) || is_object($indice))) { echo "la variable indice ne contient pas la bonne valeur ?"; $idnum = 1; $thisrec = 0; } else { $idnum = ($indice/1) ? 0 : 1; var_dump($indice); var_dump($champs); var_dump($idnum); $thisrec = !empty($donnees->$champs) && is_array($donnees->$champs) && $indice == $donnees->($champs[$idnum]) ? 1 : 0 ; }
je te remercie
16 mars 2023 à 23:21
toujours pas de résultat, même avec les accolades.
if (!empty($indice) && (is_array($indice) || is_object($indice))) { echo "la variable indice ne contient pas la bonne valeur ?"; $idnum = 1; $thisrec = 0; } else { $idnum = ($indice/1) ? 0 : 1; var_dump($indice); var_dump($champs); var_dump($idnum); $thisrec = !empty($donnees->$champs) && is_array($donnees->$champs) && $indice == $donnees->{$champs[$idnum]} ? 1 : 0 ; }
toujours la même erreur concerne la ligne 10
Notice: Array to string conversion in C:
16 mars 2023 à 23:27
Je viens peut-être de trouver la solution je fais des vérification et vous redis...
16 mars 2023 à 23:36
Je suis content je vous remercie je n'aurai jamais trouvé à propos des accolades. MERCI
au lieu de
$thisrec = !empty($donnees->$champs) && is_array($donnees->$champs) && $indice == $donnees->{$champs[$idnum]} ? 1 : 0 ;
c'est cela
$thisrec = $indice == $donnees->{$champs[$idnum]} ? 1 : 0 ;
17 mars 2023 à 09:00
peux-tu alors marquer la discussion comme résolue?
17 mars 2023 à 15:43
C'est fait encore Merci
15 mars 2023 à 21:45
Il s'agit, en effet, d'un avertissement, qui te prévient que tu essaies de convertir un tableau en une chaîne de caractères.