![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Jak to wlasciwie jest bo ja juz sam nie wiem
Moze ja cos zle robie ale sami zobaczcie - chce zeby ADoDB bylo dostepne we wszystkich moich obiektach zeby recznie nie trzeba bylo przenosic no wiec [php:1:a11d324283]<?php class obj{ var $_db; function obj(){ $this->_db =NewADOConnection('mysql'); return 1; } } ?>[/php:1:a11d324283] po czym dziedziczy to obiek np engine [php:1:a11d324283]<?php class engine extends obj{ ... function engine(){ //$this->_db->debug = true; $this->ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; $this->conn = $this->_db->Connect($this->db_host, $this->db_user, $this->db_pass, $this->db); .. } ?>[/php:1:a11d324283] no i wyskakuje mi oczywiscie Kod Fatal error: Call to a member function on a non-object in C:FoxServwwwphpbbengineengine.php on line 27
czyli $this->_db->Connect sie wysypuje moze ktos zna odpwedz?? -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jeśli definiujesz konstruktor w klasie pochodnej, nie zostanie wywołany konstruktor klasy bazowej.
Mówiąc krótko zostanie pominięty. W przypadku kiedy klasa pochodna nie ma konstruktora wtedy wywoływany jest konstruktor klasy bazowej. -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
no fakt teraz wszystko ma sens
![]() W kazdym razie czy jest inny sposob na zrobienie czegos takiego jak powyzej czy trza wszystko recznie robic? ![]() ![]() -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
[php:1:36bef23973]<?php
class obj { var $_db; function obj() { $this->_db = NewADOConnection('mysql'); } } class engine extends obj { var $conn; function engine() { parent::obj(); //$this->_db->debug = true; $this->ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; $this->conn = $this->_db->Connect($this->db_host, $this->db_user, $this->db_pass, $this->db); } } ?>[/php:1:36bef23973] -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
no wlasnie maam to tez wszedzie jedna linijka w kazdej klasie zalatwione
[php:1:db563026e4]<?php $this->_db = &$GLOBALS['engine']->_db; ?>[/php:1:db563026e4] no ale dzieki za pomoc kameleon twoj sposob jest rzeczywiscie lepsiejszy ![]() -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
najlepiej jest połaczyć jedno i drugi.
tj. w klasie parent dać $this->_db = &$GLOBALS['engine']->_db; a w potomnych wywoływać konstrutor rodzica. Ograniczamy wtedy ilość wywołanych obiektów $_db; -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 01:50 |