2010-01-22 11 views
0

Je ces lignes dans mon fichier de vueCakePHP voir question de la portée des variables

//////////////////////////// 

$a = 5; 
showme() 

showme() 
{ 
global $a; 
echo $a; 
} 

//////////////////////////////// 

Problème: $ a n'est pas accessible en fonction showme().

Je n'ai pas le choix de passer $a comme argument et aucun choix pour déplacer la fonction de la vue. Et il devrait être accessible en fonction par le mot-clé global seulement.

Je peux changer le mode de déclaration en $a.

+0

est-il si mauvais de passer une variable à la fonction? Globals sont généralement une mauvaise idée, de toute façon. – spoulson

Répondre

0

Il vous manque le point-virgule pour mettre fin à la déclaration plus tard:

$a = 5; 
showme() 

Modification:

$a = 5; 
showme(); 

Votre code semble être ok, il devrait fonctionner, pas sûr, mais vous pouvez essayez ceci si vous êtes dans une classe:

$a = 5; 
$this->showme(); 
0

Le problème est que $ a n'est pas défini dans la portée globale, mais avec dans le modèle de vue. Par conséquent,

global $a; 

ne fonctionne pas comme prévu.

Je ne sais pas si cela va fonctionner, mais vous pouvez au moins essayer:

$GLOBALS['a'] = 5; 

function showme(){ 
    echo $GLOBALS['a']; 
}