Tworzę na własne potrzeby rdzeń do obsługi bazy.
Plik dołączany jest przez require_once. Na samym początku deklaruje zmienną $db i w funkcjach
create_connection i close_connection wskazuje, że jest to zmienna globalna. W pliku, w którym dołączyłem
wywołuje kolejno create_connection i następnie close_connection. Druga nie ma w ogóle informacji o stworzonym w pierwszej obiekcie. W XDebugu widzę, że
jest to obiekt null, czyli global nie działa. Poczytałem trochę o zakresach i przyznam, ze nadal
nie mogę dojść dlaczego tak się dzieje. Gdy używam $GLOBALS['db'] wszystko działa. Bardzo prosiłbym o wyjaśnienie dlaczego tak się dzieje.
<?php require_once ('DB.php'); $db; function create_connection($user, $password, $hostname, $database){ $connection_string = "mysqli://$user:$password@$hostname/$database"; $db =&DB::connect($connection_string); if (PEAR::isError($db)) { }else } function close_connection(){ $db->disconnect(); } ?>