Page 1 sur 1
recuperer un variable dans une fonction
Posté : 14 juin 2010, 10:06
par jeorcal
Bonjour
j'ai crée un module avec 2 fichiers : mod_monmod.php et mod_monmod.xml (fichiers de paramètres)
dans mod_monmod.xml j'ai un yes/no
dans mod_monmod.php je récupères la valeur >>
$show_prod = (bool)$params->get( 'show_prod', 0 ); //(c'est pour Joomla et ca marche)
mais comment la récupérer dans une fonction ?
function getProd() {
if $show_prod (){...}
}
ne marche pas
j'ai du mal avec la portée des variables en php (habitué à .net)
merci
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 10:11
par stealth35
tu le met en paramètre
getProd($show_prod)
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 10:26
par jeorcal
non je ne peux pas faire ça (sinon je l'aurais fait) , il faut que ma fonction récupère directement la valeur du xml
merci
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 10:38
par stealth35
non je ne peux pas faire ça (sinon je l'aurais fait) , il faut que ma fonction récupère directement la valeur du xml
merci
utilise
global dans ce cas la
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 10:53
par jeorcal
j'ai essaye mais je recuperes rien
$show_prod = (bool)$params->get( 'show_prod', 0 );
echo '*1 : ' . $show_prod;
function getProd()
{
global $how_prod ;
echo '*2 : ' . $show_prod;
if ( $show_prod ) {echo '*3 : ' . $show_prod;}
}
*1 = 1 //et c'est bon
*2 n'a aucune valeur affectée, la variable n'a pas été initialisée, même pas la valeur par défaut = 0
*3 ne s'affiche donc pas
il n'y a pas comme en .net possibilité de déclarer des private à l'intérieur d'une class où toutes les variables et properties sont accessibles par les fonctions ?
sinon j'utilise ma function comme ça >>
function getProd()
{
global $how_prod ;
$maVar = 0;
if ( $show_prod ) {$maVar = 100;}
return $maVar;
}
et plus loin
echo getProd . '....' . getAny . '....' ;
et
getProd est vide
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 10:55
par stealth35
t'es dans une class la ?
pour afficher ta variable de type bool ne fais pas echo mais var_dump
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 11:01
par jeorcal
non je ne suis pas dans une class
var_dump ? mais ça me donne pas de chaine de caracteres
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 11:06
par stealth35
non je ne suis pas dans une class
var_dump ? mais ça me donne pas de chaine de caracteres
ca te rend true ou false
si ta valeur est a true echo te rend 1
si ta valeur est a false echo te rend rien
EDIT : et t'as oublié un "s" : global $
show_prod ;
je te conseil de travailler en gestion d'erreur : E_ALL | E_STRICT a reglé dans ton php.ini et ou avec
error_reporting
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 11:22
par jeorcal
var_dump me sert pas dans ce contexte, ou je l'utilises mal, je cherche a tout régler à l'intérieur de la function
$show_prod = (bool)$params->get( 'show_prod', 0 );
function getProd()
{
global $show_prod ;
ici je dois connaitre la valeur de $show_prod
}
merci
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 11:33
par stealth35
la c'est bon, var_dump c'est juste pour faire tes tests

Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 11:47
par jeorcal
ma valeur est bonne a l'exterieur de la fonction, j'imagine pas que ca soit impossible en php
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 11:48
par stealth35
ma valeur est bonne a l'exterieur de la fonction, j'imagine pas que ca soit impossible en php
mais la avec le global c'est bon tu la recupere
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 12:01
par jeorcal
non du tout
essayes toi même
Code : Tout sélectionner
$var = 10;
function displayVar() {
global $var;
return '<h1>$var == ' . $var . '</h1>' ;
}
echo displayVar();
j'obtiens
$var ==
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 12:10
par jeorcal
ce que je ne comprend pas c'est qu'ici
http://php.net/manual/en/language.variables.scope.php
Example #1 Using global
avec
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?>
je récupère 2 et non 3
je suis en PHP Version 5.2.13
le code fonctionne mais ça doit venir deJoomla
merci pour l'aide
Re: recuperer un variable dans une fonction
Posté : 14 juin 2010, 12:33
par jeorcal
je viens de trouver
$GLOBALS['show_prod'] = (bool)$params->get( 'show_prod', 0 );
function getProd()
{
global $show_prod ;
ect ....
}