Sujet : Bug potentiel sur PHP_VERSION_ID

Est-ce que ça renvoit quelque chose de cool pour PHP 5.2.11 par exemple ? Je ne pense pas.

!defined('PHP_VERSION_ID')  and $v = PHP_VERSION
                            and define('PHP_VERSION_ID',   $v{0} * 10000
                                                         + $v{2} * 100
                                                         + $v{4});

PS : accessoirement, remplacer les {} par [] ça ferait du bien aussi ! ^^

2

Re : Bug potentiel sur PHP_VERSION_ID

Hey smile,

Ça te donne quoi avec PHP 5.2.11 ?

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

3

Re : Bug potentiel sur PHP_VERSION_ID

Ben en l'occurrence ça fonctionne parce que la constante PHP_VERSION_ID' existe déjà. Et ça renvoit 50211.
Mais ton calcul est faux. Il renvoit 50201.
Après je ne sais pas dans quel cas ça peut ne pas être défini, mais ça ne sert à rien de prévoir le calcul pour ces derniers si le calcul est faux. big_smile

Re : Bug potentiel sur PHP_VERSION_ID

La doc de la fonction phpversion() donne en exemple un moyen de définir PHP_VERSION_ID pour les versions de PHP antérieures à 5.2.7, ce qui donnerait ceci en se calquant (plus ou moins) sur tes conventions de codage :

!defined('PHP_VERSION_ID')  and $v = explode('.', PHP_VERSION)
                            and define('PHP_VERSION_ID',   $v[0] * 10000
                                                         + $v[1] * 100
                                                         + $v[2]);

Le tout est de considérer que la partie release peut comporter un ou deux caractères. Pour une version comme 5.2.7, le code initial fonctionne. Mais pour la 5.2.11, il ne prendra en compte que le premier des deux "1". D'où un résultat erroné big_smile .

5

Re : Bug potentiel sur PHP_VERSION_ID

Ah merde ils ont changé la forme de la constante PHP_VERSION. Ok. J'ai du zappé cette partie dans les changelogs. Merci en tout cas ! C'est corrigé wink.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

6

Re : Bug potentiel sur PHP_VERSION_ID

Hywan a écrit:

Ah merde ils ont changé la forme de la constante PHP_VERSION.

Ah oui ? C'était un tableau avant ? yikes (dans une chaîne, l'accès [] ne retourne qu'un seul caractère jusqu'à nouvel ordre ^^).

[edit] Sinon question subsidiaire : pourquoi (unset) null ? C'est NULL quoi, non ?

Dernière fois dit par Savageman (11 Aug. 2010 17:27)

7

Re : Bug potentiel sur PHP_VERSION_ID

Oui mais il n'était pas hyper prévu d'avoir une version 11. C'est effectivement un gros oubli de ma part. C'est corrigé dans le tronc wink.

Le void avec (unset) null c'est juste pour délirer et montrer que le cast (unset) existe big_smile.

« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »