|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Inscription : février 2007 Messages : 132 ![]() |
Bonjour,
Je rencontre un problème avec a fonction include php. Dans un premier temps pour réduire les écritures j'ai écrit le fichier pss2.php suivant: (pss pour Précédent, Sommaire, Suivant; pour un journal de 8 pages) Code :
Donc j'ai refait un fichier pss.php comme cela: Code :
Quelqu'un peut-il me dire s'il est possible de faire marcher le deuxième include et si oui comment ? Si cela fait sourire les experts je précise que je n'en suis pas un et que la seule chose que j'ai pompée c'est la fonction "function url_actuelle", alors pardonnez moi si je ne fait pas des chose académiques |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 671 ![]() |
Si tu inclus ce fichier 2 fois, tu vas essayer de définir la fonction url_actuelle 2 fois. Du coup, tu devrais logiquement avoir une erreur "function already defined"... Mais si tu fais un simple include, le fait que la 2e inclusion plante ne va pas planter toute la page, juste le morceau inclus. D'où ta 2e inclusion qui donne l'impression de ne pas être faite.
Le plus simple : sortir la définition de url_actuelle de ton fichier pss.php et la mettre dans un fichier à part chargé par un require_once (ou alors l'écrire directement dans les scripts avant la 1ere inclusion de pss.php)
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
|
|
00
|
|
|
#3 | |
|
Membre régulier
![]() Inscription : février 2007 Messages : 132 ![]() |
Citation:
Mais le php c'est bizarre car en principe les fonctions sont faites pour éviter d'écrire plusieurs fois le même code et donc pour être appelées plusieurs fois. Si je comprend bien, require_once fait que à chaque include, les appels à la fonction url_actuelle sont indépendants ? Donc on ne redéfinie pas la même fonction ? Merci encore |
|
|
|
00
|
|
|
#4 | |
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 671 ![]() |
Citation:
Mais ce que faisait ton code, c'était définir la fonction à chaque fois que tu voulais l'utiliser. D'une part, ça annule tout l'intérêt de la fonction (si tu as besoin de l'écrire à chaque appel, autant ne pas faire de fonction et écrire directement le code) Et d'autre part ça provoque une erreur (vu qu'on ne peut définir une fonction qu'une seule fois) Ce que fait require_once (ou include_once) c'est charger le fichier inclus si et seulement si il n'a pas déjà été chargé avant. Or justement, on cherche à définir la fonction si et seulement si elle n'existe pas déjà. Donc, en mettant la définition de la fonction dans un fichier inclus par require_once, on s'assure qu'elle ne sera définie qu'une seule fois. Si tout fonctionne, un petit clic sur ?
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com