Utiliser une même variable dans différentes fonctions.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Utiliser une même variable dans différentes fonctions.

par zeus » 22 janv. 2008, 22:10

Effectivement, je suis désolé, j'ai lu en travers la dernière phrase du post d'origine.

En plus des solutions précédentes, tu pourrais inclure le fichier vars.php dans le fichier functions.php en utilisant un include de cette sorte
require_once( dirname(__FILE__) .'vars.php' )
Précisions :
__FILE__ contient le chemin absolu du script dans lequel se trouve cette instruction
dirname() retourne le dossier du chemin passé en parametre. si __FILE__ retourne "/home/www/libs/functions.php", dirname(__FILE__) va retourner "/home/www/libs/"

par cf357 » 22 janv. 2008, 20:50

Sauf que ça te fait faire une copie locale à chaque fois :(
Sinon, pour le prefixe, tu peux utiliser une constante...
<?php
// Quelque part, dans un fichier inclus... trèees inclu....
define('PREFIX', "myprefix");


// Pendant ce temps la, dans monAutreFichier.php
$query = 'SELECT * FROM '.PREFIX.'_table';
?>
Fonctionne sans specifier de directive 'global', ou sans passer quoi que ce soit en paramètre. Bref, une constante !

par zeus » 22 janv. 2008, 20:45

Et pourquoi ne pas le passer en paramètres à tes fonctions ?

vars.php
$prefix = "monprfix_";
functions.php
function mafonction($connexion, $prefix)
{
  echo "mon prefix est : ". $prefix;
}
et ce sont donc tes scripts d'exécution qui font le lien entre les 2
require_once('vars.php');
require_once('functions.php');

mafonction($prefix)

par Jules Petibidon » 22 janv. 2008, 19:26

hello,

lorsque plusieurs fonctions travaillent sur les memes variables, tu peux te tourner vers la programmation objet, c'est pas mal...

sinon tu as aussi la possibilité de rendre une variable globale à ton script avec le tableau $GLOBALS, c'est pas mal aussi.

sinon la méthode de Berzemus :)

par Berzemus » 22 janv. 2008, 19:14

eum, et un simple
global $prefix;
ne serait pas suffisant ?

Utiliser une même variable dans différentes fonctions.

par VaN » 22 janv. 2008, 18:37

Bonjour,

Ce n'est pas vraiment un problème qui me fait poster ici, mais plutot une envie de savoir si je peux améliorer mon script.

J'ai un fichiers nommé vars.php, contenant quelques variables, que j'utilise dans plusieurs de mes pages, comme par exemple $admin_mail, $root_site, $site_name, et surtout $prefixe, qui est le string que je place devant chacune de mes tables (car sur mon serveur de test distant, je ne peux avoir qu'une seule base de données, qui me sert pour plusieurs projets à la fois).

Et j'ai également un fichier functions.php, dans lequel je place toutes mes fonctions. Hors, il se trouve que dans quelques unes de ses fonctions, je fais des requetes SQL, qui utilise la variable $prefixe, contenu dans le fichier vars.php. Et pour que la fonction connaisse cette variable, je dois faire un
require 'vars.php'
au début de chacune de mes fonctions utilisant cette variable. Donc j'aimerai savoir si il existe un moyen de ne plus faire ce require() au debut de chacune de mes fonctions, mais par exemple de faire un require global, au tout début de mon fichier functions.php, quelque chose qui me permettrai de le déclarer une seule fois pour toute.