Wikini

DiscussionActionRssgp

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-54-163-20-57.compute-1.amazonaws.com
Question : Je ne comprends pas, dans l'action en développement ActionRssgpcomment? arriver à récupérer le tableau associatif $k_w dans la fonction endElement.
Si quelqu'un a une idée, je lui en serai éternellement reconnaissant! :-) .
Réponse : Ce devrait fonctionner en rajoutant en tout début :
global $cur_item, $store, $total, $k_w; (j'ai modifié le code ci dessous). -- DavidDelon

Yep, ça marche. Merci David. c'est lié au fait qu'une action est exécutée dans une méthode de la classe Wiki ? --yann Oui, apparemment, je ne sais pas si c'est un bug ou une fonctionnalité de php, voir également : http://fr2.php.net/language.variables.scope#30345 .--DavidDelon


function myfunc() {
    $a = 17;
    function multiplier2() {
        global $a;
        $b = 10*$a;
        return $b;
    }
    return multiplier2();
}
echo myfunc(); //affiche 0
echo multiplier2(); //affiche 0


Pour vérifier si j'ai bien compris: dans l'exemple ci-dessus: $a est bien local à la fonction myfunc, cette variable fait donc parti de l'environnement des fonctions et non de l'environnement global, elle n'est donc pas accessible depuis une autre fonction, même en la déclarant globale dans cette dernière. Pour y accéder dans multiplier2(), il faut la déclarer globale dans myfunc(). Le code ci-dessus est de ce point de vue équivalent au code ci-dessous:

function myfunc() {
    $a = 17;
    return multiplier2();
}
function multiplier2() {
        global $a;
        $b = 10*$a;
        return $b;
}
echo myfunc();
echo multiplier2(); 

on comprend bien ici que multiplier2() n'accède pas à $a. --yann

pour régler le problème des variables globales dans les actions, une solution serait par exemple:

Class Test {
    
    var $a;
    var $b;
    
    function test($z) {
        $this->a = $z;
        return $this;
    }
    
    function myfunc5() {
        return $this->multiplier5();
    }
    
    function multiplier5() {
        $this->b = 10 * $this->a;
        return $this->b;
    }
    
}

$n = new Test(17);
echo $n->myfunc5(); 
echo $n->multiplier5(); 

Ce serait en effet une excellente solution. A chaque exécution d'une action il suffirait donc d'appeler une des fonctions de l'objet, avec un tableau contenant les paramètres fournis par l'utilisateur (ce qui simplifierait aussi la récupération des paramètres, et permettrait éventuellement de créer une action dont les noms de paramètres pourraient être variables) -- LordFarquaad


Bon, c'est plus buggé (merci David) mais je ne comprends pas encore comme tu affectes les cases à telle ou tel feed? --OlivierAuber

Dans le script, les feeds sont lus et affichés de gauche à droite et de haut en bas (même sens de lecture qu'un texte), à la queue leuleu et dans l'ordre où ils sont dans le paramètre de l'action, donc en fait on n'affecte pas directement une case à un feed. --yann

rssgp

Pour clarifier, peut-être faudrait-il dessiner des séparateurs? (des |)? --OlivierAuber
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]