Une erreur PHP simple (?), je coince sur un !==0
Résolu
Sebas22
Messages postés
110
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Cela doit être simple mais je patauge depuis 2 jours.
J'ai un code qui marche (désactivé ici par des //) mais je veux me libérer des zéros intempestifs.
J'ai essayé 2 codes php pour mes 2 champs (tous les 2 labélisés INT, pas VARCHAR) avec des zéros parasites, mais j'ai un message d'erreur:
Parse error: syntax error, unexpected '[', expecting ',' or ';' in D:\_blablal\blabla.php on line 109
Y a pas de souci de [ à la ligne 109 qui est celle avec if (substr($Original_array[3],0,0) !==0 (j'ai essayé d'intervertir le code des lignes 109 et 110, mais c'est pareil)
Un petit coup de pouce?
Merci d'avance
Seb
Cela doit être simple mais je patauge depuis 2 jours.
J'ai un code qui marche (désactivé ici par des //) mais je veux me libérer des zéros intempestifs.
J'ai essayé 2 codes php pour mes 2 champs (tous les 2 labélisés INT, pas VARCHAR) avec des zéros parasites, mais j'ai un message d'erreur:
Parse error: syntax error, unexpected '[', expecting ',' or ';' in D:\_blablal\blabla.php on line 109
Y a pas de souci de [ à la ligne 109 qui est celle avec if (substr($Original_array[3],0,0) !==0 (j'ai essayé d'intervertir le code des lignes 109 et 110, mais c'est pareil)
echo '<tr><td><i>' . $genetics . '</i></td><td><i>'. $Original_array[0] . '</i></td><td><i>'. $Original_array[1] . //'</i></td><td>'. $Original_array[2] . //'</i></td><td>'. $Original_array[3] . //'</i></td><td>'. $Original_array[4] . //'</td><td>' . $Original_array[5] . '</td></tr>'; '</i></td><td>'. $Original_array[2] . ''; if (substr($Original_array[3],0,0) !==0) {echo '</td><td>' . Original_array[3] . '';} else {echo '</td><td>';} if ($Original_array[4] !==0) {echo '</td><td>' . Original_array[4] . '';} else {echo '</td><td>';} echo '</td><td>' . $Original_array[5] . '</td></tr>';
Un petit coup de pouce?
Merci d'avance
Seb
A voir également:
- Une erreur PHP simple (?), je coince sur un !==0
- Iphone 14 simple - Guide
- Remettre a 0 un pc - Guide
- Numéro de téléphone excel 0 - Guide
- Comment enlever un bout de chargeur coincé dans l'iphone - Forum iPad
- 0 barré clavier ✓ - Forum Programmation
2 réponses
Bonjour,
Deux choses.
D'une part, substr() renvoie une chaîne. Donc la comparaison avec !== sera toujours vraie, puisque string("0") est toujours !== de int(0).
Compare plutôt avec "0" :
D'autre part, il manque les $ devant Original_array[3] à la ligne qui te pose problème, dans le corps du if (et à la ligne suivante aussi)
Xavier
Deux choses.
D'une part, substr() renvoie une chaîne. Donc la comparaison avec !== sera toujours vraie, puisque string("0") est toujours !== de int(0).
Compare plutôt avec "0" :
if (substr($Original_array[3],0,0) !== "0").
D'autre part, il manque les $ devant Original_array[3] à la ligne qui te pose problème, dans le corps du if (et à la ligne suivante aussi)
Xavier
Merci Xavier,
Je me disais que j'avais besoin d'un œil extérieur.
Je n'avais pas intégré cette notion d'incompatibilité entre les strings et les INT.
C'est bon maintenant.
Je marque 'résolu'
Seb
(pour le $ c'était de l'inattention en recopiant)
Je me disais que j'avais besoin d'un œil extérieur.
Je n'avais pas intégré cette notion d'incompatibilité entre les strings et les INT.
C'est bon maintenant.
Je marque 'résolu'
Seb
(pour le $ c'était de l'inattention en recopiant)
En fait, ce n'est pas que c'est complètement incompatible.
Il y a des équivalences, mais les opérateurs !== et === servent justement à indiquer qu'on veut une égalité en valeur ET AUSSI en type.
Si tu avais utilisé != et ==, tu n'aurais pas eu le même problème (mais tu aurais pu en avoir d'autre), car ils ne font les comparaisons qu'en valeur.
Par exemple, les lignes suivantes sont toutes VRAIES :
1 == "1"
"1" == true
0 == false
"" == false
"0" == false
0 == ""
etc.
Par contre, en rajoutant un symbole = elles deviennent toutes fausses.
Il y a des équivalences, mais les opérateurs !== et === servent justement à indiquer qu'on veut une égalité en valeur ET AUSSI en type.
Si tu avais utilisé != et ==, tu n'aurais pas eu le même problème (mais tu aurais pu en avoir d'autre), car ils ne font les comparaisons qu'en valeur.
Par exemple, les lignes suivantes sont toutes VRAIES :
1 == "1"
"1" == true
0 == false
"" == false
"0" == false
0 == ""
etc.
Par contre, en rajoutant un symbole = elles deviennent toutes fausses.