|
Bas de page | |
---|---|
Auteur | Sujet : [Résolu] Comportement bizarre d'une fonction entre PHP5 et PHP8 |
rufo Pas me confondre avec Lycos! | Bonjour,
Message édité par rufo le 24-11-2023 à 17:12:54 --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
Publicité | Posté le 23-11-2023 à 16:50:38 |
pluj | Lu,
|
rufo Pas me confondre avec Lycos! | Non, si je fais un print_r($aTableau) avant mon if, j'ai bien mes éléments numérotés de 0 à 19.
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
mechkurt | Et si tu fais un var_dump($iNbPoints, $aTableau); entre la ligne 3 et 4 (avant le if et la modification des données), tu as exactement le même output en php 5 et en 8 ? --------------- D3 |
rufo Pas me confondre avec Lycos! |
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
rufo Pas me confondre avec Lycos! |
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
FlorentG | En y réfléchissant, si les indices doivent être garantis successifs, tu devrais dans tous les cas mettre un array_values. Là tu as trouvé un bug potentiel (qui devrait être couvert par un test unitaire par la suite). Si quelqu'un appel ta fonction avec un array foireux, ton code ne retourne pas quelque-chose de correct. Vaux mieux la jouer safe. |
rufo Pas me confondre avec Lycos! | C'est bon, j'ai trouvé !
Message édité par rufo le 24-11-2023 à 11:10:36 --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
FlorentG | Met-nous la raison, si un pauvre hère cherche dans 20 ans, et tombe sur ce topic |
Publicité | Posté le 24-11-2023 à 11:08:24 |
rufo Pas me confondre avec Lycos! | Du reste, manifestement, en PHP5, $aTableau n'a effectivement pas connaissance de l'indice précédemment effacé hors de la fonction alors qu'en PHP8, il ne a connaissance. En tout cas, c'est la conclusion à laquelle j'arrive. Message édité par rufo le 24-11-2023 à 14:40:49 --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
pluj | Tu peux éventuellement remplacer unset :
|
rufo Pas me confondre avec Lycos! | Oui, pourquoi pas. Ca va renuméroter les clés de 0 à n.
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
FlorentG | À mon avis y'a autre chose encore. Parce qu'en testant sur une 5.6 ou une 8.2, j'ai le même comportement Est-ce que ton tableau est trimballé ailleurs entre le unset, et l'appel à la fonction ? |
rufo Pas me confondre avec Lycos! | https://www.php.net/manual/fr/function.unset.php
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
rufo Pas me confondre avec Lycos! |
Message édité par rufo le 24-11-2023 à 15:21:02 --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
FlorentG | Ah oui du 5.4 ! C'est peut-être entre la 5.4 et la 5.6. On va finir pas trouver |
rufo Pas me confondre avec Lycos! | J'ai mis en résolu mon topic car j'ai compris ce qui se passait et la doc de PHP concernant unset() semble bien mentionner ce comportement.
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
spark Luc ? | Est-ce que t'as regardé du coté de https://www.php.net/manual/en/function.array-pop.php ? --------------- Un cycle complet sera une série de 100. |
rufo Pas me confondre avec Lycos! | Oui, cette fonction n'aurait pas causé le pb. Mais c'est bien ce que je dis : c'est pas normal que suivant la manière dont on enlève le dernier élément, le comportement diffère sur le positionnement de l'index. Un coup, ça le réinitialise, un coup non --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
TotalRecall | Les gars, la première fois que j'ai fait du PHP y a 20 ans, l'ado que j'étais s'est dit "quel bordel ce langage, c'est plein de failles potentielles et de comportements chelous, je ne comprends pas que ça soit utilisé par des millions de sites et pas juste des pages persos de bidouilleurs du dimanche sans qu'internet s'effondre toutes les semaines". Je ne comprends pas qu'un langage puisse altérer entre deux versions le comportement d'un truc utilisé depuis 70 ans comme les tableaux, c'est pas vraiment un truc expérimental Message édité par TotalRecall le 25-11-2023 à 10:44:10 --------------- Topic .Net - C# @ Prog |
FlorentG | Là en l'ocurrence c'est le même merdier en JS avec la propriété length des tableaux |
TotalRecall | Je me tiens le plus loin possible du JS, mais je sais que sur les chaînes ça donne des résultats rigolo dès qu'on est sur de l'UTF / Unicode (il faut utiliiser un truc bizarre avec des crochets autour de la chaîne pour avoir les "vraies" longueurs), et qu'on peut utiliser l'indexeur pour glisser des trucs après la dernière position quitte à poser quelques undefined en chemin, mais au moins j'imagine que ça s'est toujours comporté pareil... Non ? ... Non ? Ca a changé de comportement length en js au fil des années ? Message édité par TotalRecall le 02-12-2023 à 10:17:33 --------------- Topic .Net - C# @ Prog |
rufo Pas me confondre avec Lycos! | Je sais pas, je suis resté en ISO-8859-1 --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
Publicité | Posté le |
Sujets relatifs | |
---|---|
Comportement d'événement Javascript bizarre | [SOLVED] fonction super except |
fonction illisible dans un fichier annexe | Changer une icone en fonction d'une variable ? |
Créer et ajouter fonction au menu contextuel | Fonction exec() |
[ksh] Mixture bizarre dans une chaine de caracteres - getopts | problème de récupération de texte avec une fonction |
[Powershell] Variable objet en paramètre de fonction & ValidateSet | |
Plus de sujets relatifs à : [Résolu] Comportement bizarre d'une fonction entre PHP5 et PHP8 |