2010-02-22 6 views
0

J'ai ce script http://pastie.org/836744, qui fonctionne en dehors de la classe tout à fait bien, mais il ne fonctionne pas dans une autre classe, j'ai ajouté les variables globales dans la méthode, qui sont étant utilisé à l'intérieur d'autres fonctions, mais cela n'a pas fonctionné.classes php ne fonctionnent pas à l'intérieur d'une autre classe, mais fonctionne à l'extérieur

Voici le code de démonstration

include_once("prayer_calculation.inc.php"); 
$prayers = get_prayer_times(67.0181732, 30.2094593, 5, 3, 22, 2, 2010, 0, 1678, 1010, 10); 

echo $prayers['0']->hour.' '.(($prayers['0']->hour <= 12) ? $prayers['0']->hour : ($prayers['0']->hour - 12)).':'.sprintf("%02d", $prayers['0']->minute).' '.(($prayers['0']->hour < 12) ? 'am' : 'pm'); 
echo '<br>'; 
echo (($prayers['1']->hour <= 12) ? $prayers['1']->hour : ($prayers['1']->hour - 12)).':'.sprintf("%02d", $prayers['1']->minute).' '.(($prayers['1']->hour < 12) ? 'am' : 'pm'); 
echo '<br>'; 
echo (($prayers['2']->hour <= 12) ? $prayers['2']->hour : ($prayers['2']->hour - 12)).':'.sprintf("%02d", $prayers['2']->minute).' '.(($prayers['2']->hour < 12) ? 'am' : 'pm'); 
echo '<br>'; 
echo (($prayers['3']->hour <= 12) ? $prayers['3']->hour : ($prayers['3']->hour - 12)).':'.sprintf("%02d", $prayers['3']->minute).' '.(($prayers['3']->hour < 12) ? 'am' : 'pm'); 
echo '<br>'; 
echo (($prayers['4']->hour <= 12) ? $prayers['4']->hour : ($prayers['4']->hour - 12)).':'.sprintf("%02d", $prayers['4']->minute).' '.(($prayers['4']->hour < 12) ? 'am' : 'pm'); 
echo '<br>'; 
echo (($prayers['5']->hour <= 12) ? $prayers['5']->hour : ($prayers['5']->hour - 12)).':'.sprintf("%02d", $prayers['5']->minute).' '.(($prayers['5']->hour < 12) ? 'am' : 'pm'); 
+0

qu'est-ce qui ne fonctionne pas? Que retourne 'get_prayer_times'? Quel message d'erreur obtenez-vous? – thetaiko

+0

Votre lien pastie est mort. Peut-être pourriez-vous mettre à jour cette question? – Kev

Répondre

1

On dirait un problème de portée. Les différents tableaux du script n'auront qu'une portée locale au point où vous incluez le fichier, donc utiliser global pour essayer de les atteindre à l'intérieur des fonctions ne fonctionnera pas.

Essayez de définir les matrices fixes en tant que globales, par ex. $GLOBALS['L1'] alors vous devriez être capable de les atteindre à l'intérieur des fonctions.

+0

hmm ok va essayer. – Basit