Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] problem z klasą, i zapisywaniem zmiennych
BugsBunny
post
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 4
Dołączył: 2.04.2005

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


oto moja klasa
  1. <?php
  2. private $_arData;
  3.  
  4. //......
  5.  
  6. private function __construct(){
  7. print_r ($this->_arData);
  8. if(!isset($this->_arData)){
  9. throw new Exception('Brak danych potrzebnych do zainicjowania połączenia');
  10. }
  11. $this->_hConn = @mysql_connect($this->_arData['host'],$this->_arData['user'],$this->_arData['pass']);
  12.  
  13. if(mysql_select_db($this->_arData['db']) )
  14.  throw new Exception('Nie można wybrać bazy danych'.mysql_error);
  15.  
  16. }
  17.  
  18. public static function connect($arData){
  19.  
  20. static $objDb;
  21.  
  22. if(!isset($objDb))
  23.  $objDb = new Db;
  24. $this->_arData = $arData;
  25. print_r ($this->_arData);
  26. return $objDb;
  27. }
  28. ?>


I jakos nie działa mi to
$this->_arData = $arData;

bo gdy chce wyświetlic sobie tablice przez
print_r($this->_arData); nic nie wyświetla :/

[+] edit
Dodaje tag, aby temat był zgodny z forum Przedszkole,
ponieważ już padły odpowiedzi. Na przyszłość proszę
pamiętać o tym, inaczej temat zostanie zamknięty.
---
~strife
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Najprościej rzecz ujmując $this można używać, gdy został utworzony obiekt klasy. Jeśli chcesz operować na metodach statycznych, to musisz użyć self::

  1. <?php
  2.  
  3. class klasa
  4. {
  5. private static $zmienna;
  6.  
  7.  
  8. public static function metoda1( $wartosc )
  9. {
  10. self::$zmienna = $wartosc;
  11. }
  12.  
  13. public static function metoda2()
  14. {
  15. echo 'Test: ' . self::$zmienna . '<br>';
  16. }
  17. }
  18.  
  19.  
  20. //klasa::$zmienna; - Takie wywołanie wywali Fatal Error - zmienna klasowa jest prywatna
  21. klasa::metoda2(); // Wyświetli samo "Test: " - zmienna klasowa nie ma jeszcze wartości
  22.  
  23. klasa::metoda1( 'foo' );
  24. klasa::metoda2(); // Wyświetli: "Test: foo"
  25.  
  26. ?>


Ten post edytował Kicok 1.07.2007, 09:06:07
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: 25.12.2025 - 12:43