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
BugsBunny
post
Post #2





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

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


Tak ją wywołuję
  1. <? 
  2. // daane z config
  3. $db['host'] = '******';
  4. $db['pass'] = '******';
  5. $db['user'] = '*****';
  6. $db['db'] = '******';
  7.  
  8. //classtest.php
  9. require_once 'class.db.php';
  10.  
  11. try{
  12. $db = Db::connect($db);
  13. }
  14.  
  15. catch(Exception $e){
  16. print_r ($e->getMessage());
  17. }
  18. ?>

pozatym jeżeli w funkcji connect umieszczę

  1. <?php
  2. print_r($arData);
  3. ?>

to wszystko jest OK
a jak ją przypisuje do $this->_arData to tak jakby nie istniała :/

a może cos z tym że funkcja jest statyczna ?

No więc chodzi o to ze funkcja jest statyczna :/ Bo zrobiłem normalnie i działa. Może funkcja statyczna nie moze zapisaywac do zmiennych w klasie. Jak więc to rozwiązać?

hmm to teraz turdno mi to zrozumieć

funkcja w klasie
  1. <?php
  2. public function connect($arData){
  3. $this->_arData = $arData;
  4.  
  5. return $this->_arData;
  6. }
  7.  
  8. i wyśeitlam przez print_r
  9. tak wyglada tablica $arData
  10. [b]Array ( [host] => localhost [pass] => krasnal [user] => root [db] => homepage )[/b]
  11.  
  12. a tak to co zwraca funkcja connect
  13.  
  14. [b]Db Object ( [_hConn] => [_arData] => Db Object *RECURSION* ) [/b]
  15.  
  16. ...
  17.  
  18. początek klasy
  19. [/b]
  20. ?>
class Db{

public $_hConn;
public $_arData;[php]
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: 27.12.2025 - 17:10