Page 1 sur 1
Equivalent des directives de compilation #if du langage C
Posté : 23 mai 2006, 17:54
par metro-gi
Bonjour,
Quasiment tout est dit dans le sujet.
Existe-t-il en PHP des directives permettant d'interpréter le code en fonction d'un argument externe comme par exemple la version de PHP ??
Merci d'avance de vos réponses.
Posté : 23 mai 2006, 18:08
par Vaedan
Ce n'est pas des directives à proprement parler mais tu peux faire un script du genre :
if( ! check_version( PHP_VERSION, "4.1.0" ) )
{
...
}
else
{
...
}
EDIT: tu peux aussi générer le code de ta page avec de telles conditions puis effectuer un eval du code obtenu. Alors à ce moment là, oui tu as des directives de compilation

Posté : 23 mai 2006, 18:21
par metro-gi
Ca veut dire que si je veux mettre en oeuvre les interfaces de PHP 5 dans un programme PHP 4 et garder la compatibilité avec les deux version, il faudrait que j'encapsule chacune des class existante avec un test sur PHP 4 et que je les duplique avec les modifications qui conviennent pour utiliser PHP 5?
Un travail giganteste.....................
Quelqu'un aurait une autre idée ???
Posté : 23 mai 2006, 18:27
par Vaedan
PHP4 et PHP5 ne sont pas fait pour cohabiter

Posté : 23 mai 2006, 18:34
par metro-gi
Les deux versions du langage non, mais les programmes réalisés eux, dans certains cas, doivent pouvoir fonctionner avec ces deux langages

Posté : 23 mai 2006, 18:45
par Vaedan
Le plus simple est de proposer 2 versions, une php4, l'autre php5. Afin de limiter le travail tu pourrais découper ton script en 3 parties. Le code générique, le PHP4 et le PHP5. Tu includes ensuite dans ton code générique soit le fichier page_x.php4, soit page_x.php5.
Posté : 23 mai 2006, 19:00
par Invité
merci pour ces conseils qui me seront précieux
Sinon j'allais dans le mur ](*,)
Bonne soirée
Posté : 23 mai 2006, 20:09
par mere-teresa
Certains paramètres du php.ini peuvent aider pour la compatibilité (Zend Engine, toussa) quand tu fais tourner un script PHP4 sous PHP5.
Quelques éléments en plus : Cohabitation PHP4 et PHP5