Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zmienne globalne
rorschach
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.07.2009

Ostrzeżenie: (0%)
-----


Witam,
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.



  1. <?php
  2. require_once ('DB.php');
  3.  
  4. $db;
  5.  
  6. function create_connection($user, $password, $hostname, $database){
  7.   $connection_string = "mysqli://$user:$password@$hostname/$database";
  8.  
  9.   global $db;
  10.  
  11. $db =&DB::connect($connection_string);
  12.   if (PEAR::isError($db)) {
  13.    die($db->getMessage());
  14. }else
  15.   echo 'utworzono połączenie';
  16. }
  17.  
  18. function close_connection(){
  19.   global $db;
  20.   $db->disconnect();
  21.   echo 'rozłączono';
  22. }
  23. ?>


Ten post edytował rorschach 10.07.2009, 08:39:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rorschach
post
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.07.2009

Ostrzeżenie: (0%)
-----


Taki mały singleton to w sumie fajna sprawa, ale przechodzę na php z javy i przyznam, że cały czas na czymś się zatrzymuje i dlatego postanowiłem napisać coś w miarę prostego po kolei starając się wyłapać wszystkie haczyki.
Mały update:
plik z funkcjami jest w folderze core
w głównym folderze jest plik require_all.php i w nim includuje wszystkie funkcje niezbędne do działania całej apliakacji
i dopiero w pliku checkLogin.php includuje plik require_all.php. Tu jeszcze podejrzewam, że coś mogłem napsuć.

----/core
----dbase_api.php (definicje funkcji)
-/
-index.php(wywołuje checkLogin.php)
-require_all.php (tu są wszystkie konieczne includy)
-check_login.php (tu wywołuje funkcje)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 15:59