Tworzę podstawową strukturę PHP. Muszę przekazać dane dotyczące bieżącej strony do różnych funkcji, pozwolić im na modyfikację i zapisanie, a następnie przekazać je z powrotem do wyświetlanej strony. Początkowo planowałem przechowywać dane w zmiennej globalnej, takiej jak $GLOBALS['data']
, ale zaczynam myśleć, że używanie globalnego jest złym pomysłem. Myślę więc, że zamiast tego wstawię zmienną statyczną do klasy systemowej i uzyskam do niej dostęp za pomocą system::$data
. Moje pytanie brzmi: co byłoby lepsze i dlaczego?Zmienne globalne a statyczne w PHP
to:
$GLOBALS['data'] = array();
$GLOBALS['data']['page_title'] = 'Home';
echo $GLOBALS['data']['page_title'];
Albo to:
class system
{
public static $data = array()
}
function data($new_var)
{
system::$data = array_merge(system::$data, $new_var);
}
data(array('page_title' => 'Home'));
echo system::$data['page_title'];
niesamowity artykuł –
Czy występuje różnica w wydajności? Wygląda na to, że globale nie są tak wydajne, jak użycie zmiennej statycznej. –
@Kyle ** To nie ma znaczenia. ** Poważnie. Prawdopodobnie istnieje różnica, ale jest tak astronomicznie mała, że nie ma znaczenia. Twoim najwyższym priorytetem powinno być pisanie kodu, który jest utrzymywany, logiczny, czytelny i wszystkie inne rzeczy powinny być kodami. Globalne i "publiczne statyczne" zmienne są zarówno straszne w tym celu. – deceze