php sınıflar başka bir sınıf içinde çalışmak istemiyorum, ama küresel dışında çalışan [kapalı]

1 Cevap php

i sınıfının dışında çalışan bu http://pastie.org/836744 senaryo, tamamen iyi var, ama bu başka bir sınıfın içinde çalışmaz, ben diğer fonksiyonların içinde kullanılan edildiği, çok yöntemi küresel değişkenler ekledik, ama olmadı iş.

Aşağıdaki demo kodu

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');

1 Cevap

Bir kapsam sorunu gibi görünüyor. Senaryoda çeşitli diziler yalnızca dosyasını dahil noktasına yerel kapsama sahip olacak, böylece işlevleri içinde onları denemek ve ulaşmak için küresel kullanarak çalışmaz.

Globalleri gibi sabit diziler kurmayı deneyin, örneğin $GLOBALS['L1'] daha sonra işlevleri içinde onlara ulaşmak mümkün olmalıdır.