par
sideb » 06 oct. 2005, 19:25
Salut,
Le Problème:
J'ai besion de faire des class dans lesquel vont être portée un fichier avec des variables par defaut.
Mon problème c'est qu'à chaques instences de la même page il veut inclure le fichier avec les variables. Avec un require ça me marque pas d'erreur mais à chaque intence il va faire l'inclure.
Deux Questions:
1 - Je voudrais savoir si il y a pas un moyen d'éviter cela, et d'inclure uniquement le fichier que si les variables on subit un changement.
2 - Est-il possible lorsque l'on inclus des variables à partir d'un autre fichier de definir leur droit, de les passer en protected ou private.
Voici une class test que j'ai fait pour essayer de régler mon problème.
-> Fichier avec la déclaration de la class et des instences de test:
<?php
class test {
public $testsansrien;
public $testavecnull;
public function __construct($testsansrien = '',$testavecnull = 'NULL') {
require_once './tt.conf.php';
echo 'les vars de depart:<br />';
echo 'testsansrien: '.$this->testsansrien.'<br />';
echo 'testavecnull: '.$this->testavecnull.'<br /><br />';
$this->testsansrien = $testsansrien;
$this->testavecnull = $testavecnull;
echo 'les vars ajoute:<br />';
echo 'testsansrienA: '.$this->testsansrien.'<br />';
echo 'testavecnullA: '.$this->testavecnull.'<br /><br />';
$this->testsansrien = $_DEFAUT['testsansrien'];
$this->testavecnull = $_DEFAUT['testavecnull'];
echo 'les vars DEFAUT:<br />';
echo 'testsansrienD: '.$this->testsansrien.'<br />';
echo 'testavecnullD: '.$this->testavecnull.'<br /><br />';
}
}
echo 'TEST1:<br />';
$intence1 = new test;
echo '<br />TEST2:<br />';
$intence2 = new test('sansrien','avecnull');
?>
-> Le fichier avec les variables (tt.conf.php):
<?php
//$_DEFAUT = array();
$_DEFAUT['testsansrien'] = 'DEFAULTRIEN';
$_DEFAUT['testavecnull'] = 'DEFAULTNULL';
?>