8792 sujets

Développement web côté serveur, CMS

Hello, j'avais anciennement une page qui contenait le code suivant :

<?php
$rubchiffre = 0;


if (file_exists('page.php')) {
        $rubchiffre = $rubchiffre + 1;
        echo '<span class="rub_title">'.$rubchiffre.'. mapage</span>';
	include ('page.php');
}
?>


J'ai maintenant changé cela en une fonction :

<?php
include (fonctions.php);
$rubchiffre = 0;
rubrique('rub','Ma Page','mapage.php');

Et dans fonctions php :

function rubrique($type,$name,$file) {
    if (file_exists($file)) {
         $rubchiffre = $rubchiffre + 1;
         echo'<span class="'.$type.'_title">'.$rubchiffre.'. '.$name.'</span>';
	 include ($file);
    }

Mais la fonction ne retrouve plus la variable $rubchiffre initialisée dans le fichier qui l'appelle.
Je pourrais la faire passer DANS la fonction
function rubrique($type,$name,$file,$rubchiffre);

mais le problème est que j'ai d'autres variables initialisée dans la page d'appel, qui servent au fichier inclus par la suite.
Comment puis-je faire ?
Avant que je transforme mon script en fonction, ça marchait. J'imagine qu'il y a moyen de garder les variables d'une manière ou d'une autre, non ??
Modifié par gordie (22 Nov 2006 - 13:21)
Bonjour,

Tu peux toujours faire des globales :
global $_RUB_CHIFFRE;
$_RUB_CHIFFRE = 0;


Et il ne faut pas oublier de déclarer la globale a chaque fois que l'on en a besoin dans un nouvel environnement (par exemple au début de ta fonction).