我有这个http://pastie.org/836744脚本,它在类外完全正常工作,但它在另一个类中不起作用,我在方法中也添加了全局变量,这些变量在其他函数中使用,但是没工作。
以下是演示代码
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 :(得分:1)
看起来像是一个范围问题。脚本中的各种数组只有本地范围到您包含文件的位置,因此使用global来尝试在函数内部访问它们将不起作用。
尝试将固定数组设置为全局变量,例如$GLOBALS['L1']
然后您应该能够在函数内部与他们联系。