Page 1 sur 1

Problème avec global et function

Posté : 30 juil. 2010, 14:15
par alsab
Bonjour,

J'ai un problème sur mon site. Je voudrais insérer une variable dans une function, comme le modèle ci dessous mais ça ne marche pas.
J'ai éssayé toutes les solutions et tuto que j'ai pu trouvé. Apparemment global ne fonctionne pas.
Je voulais donc savoir si par hasard vous auriez une idée.
<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
} 

Sum();
echo $b;
?>
si j'utilise ce code j'obtiens 2 et pas 3

Re: Problème avec global et function

Posté : 30 juil. 2010, 14:27
par dev3
Bonjour,

Les variables globales peuvent être activées ou désactivées selon la configuration du serveur.

Re: Problème avec global et function

Posté : 30 juil. 2010, 14:41
par alsab
Ok, c'est bien ce que je pensais.
c'est avec register_globals, non?

Et si on ne peut pas modifier la config, comment on fait?

merci

Re: Problème avec global et function

Posté : 03 août 2010, 12:30
par alsab
Bonjour,

Il y a vraiment aucun moyen de réaliser cette fonction sans global? Merci
<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
} 

Sum();
echo $b;
?>

Re: Problème avec global et function

Posté : 03 août 2010, 16:59
par stealth35
pourquoi ne pas faire un fonction normale
$a = 1;
$b = 2;

function Sum($a, &$b)
{
    $b = $a + $b;
}

Sum($a, $b);
echo $b;

Re: Problème avec global et function

Posté : 03 août 2010, 17:20
par alsab
J'y avais bien penser mais dans mon cas c'est pas possible.
Voici comment ça se présente
<?php
function search(){
//ici le code de ma fonction de recherche qui me donne le résultat
$resultat = "resultat";


function selection()
{
 //là j'ai une requete mysql contenant la variable $resultat
    echo $resultat_requete;
} 
}
?>
//et beaucoup plus loin
<?php selection() ?>
Voilà. Mon problème c'est de faire rentrer la variable $resultat dans function selection.

Si vous avez une idée?

MErci

Re: Problème avec global et function

Posté : 03 août 2010, 17:24
par stealth35
faut utilise les paramètre de fonction
function selection($resultat)
c'est pas terrible de mettre des fonctions dans des fonctions non plus :wink:

Re: Problème avec global et function

Posté : 03 août 2010, 18:44
par alsab
Je sais pas si j'ai bien compris mais si je mets la variable directement entre dans selection(), ça ne marche pas
<?php
function search(){
//ici le code de ma fonction de recherche qui me donne le résultat
$resultat = "resultat";


function selection($resultat)
{
 //là j'ai une requete mysql contenant la variable $resultat
    echo $resultat_requete;
} 
}
?>
//et beaucoup plus loin
<?php selection() ?>
c'est pas terrible de mettre des fonctions dans des fonctions non plus
Moi je veux bien la mettre à la fin mais c'est toujours le même problème, il faut que j'arrive à sortir la variable $resultat de la function search.
<?php
function search(){
//ici le code de ma fonction de recherche qui me donne le résultat
$resultat = "resultat";



}
?>
//et beaucoup plus loin
<?php function selection()
{
 //là j'ai une requete mysql contenant la variable $resultat
    echo $resultat_requete;
}  ?>

Re: Problème avec global et function

Posté : 03 août 2010, 18:59
par stealth35
dans selection tu requêtes $resultat

$a = 1;

function test($a)
{
    echo $a;
}

test($a);
// 1

le $a dans test les juste le nom du paramètre tu peux mettre autre chose
$a = 1;

function test($blabla)
{
    echo $blabla;
}

test($a);
// 1
mais la c'est quand meme les base de la programmation, je t'invite a allé voir des tuto ou la doc : http://www.php.net/manual/fr/language.functions.php

Re: Problème avec global et function

Posté : 04 août 2010, 00:01
par alsab
Code php
$a = 1;

function test($blabla)
{
echo $blabla;
}

test($a);
// 1


mais la c'est quand meme les base de la programmation, je t'invite a allé voir des tuto ou la doc : http://www.php.net/manual/fr/language.functions.php
Oui mais le problème c'est que je ne peut pas mettre la variable $a dans test(), comme on fait normalement.
A l'endroit où j'appelle ma fonction je ne peut pas lire cette variable.
C'est pour ça que je voulais utiliser global pour l'insérer directement dans la function.
Mais global ne fonctionne pas. Alors qu'est ce que je peut faire dans ce cas là?

Re: Problème avec global et function

Posté : 04 août 2010, 00:14
par stealth35
montre ton vrai code, y'a un problème de conception dans ton raisonnement

Re: Problème avec global et function

Posté : 04 août 2010, 01:08
par alsab
En faîtes c'est un composant joomla que je modifie et le code est très long.
C'est étonnant qui il n'y est rien pour remplacer global.

Re: Problème avec global et function

Posté : 05 août 2010, 16:00
par alsab
C'est bon j'ai trouvé une solution en modifiant le code
Merci quand même pour ton aide stealth35