Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OO]używanie klasy w innej klasie
Bielo
post
Post #1





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 21.09.2003
Skąd: Truskaw

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


Mam klasę do obsługi mysql'a.
jeśli nie powiedzie się mysqli_connect chcę żeby z klasy template uruchamiał metodę message.
[php:1:49ad7b6990]<?php
//w klasie database
$this->database_link=mysqli_connect($host,$user,$password,$dbname) or template::message("Nie mogę się połączyć z bazą danych!");
?>[/php:1:49ad7b6990]

Tylko że template::message nie działa i chcę się dowiedzieć co powinienem zrobić zamiast tego??

Kuiedyś rozwiązałem to w ten sposób że do klasy obsługi mysql'a dodawałem handler do template engine'a, ale to było trochę nie wygodne bo musiałem includować pliki z klasami w odpowiedniej kolejności


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Dravo
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 0
Dołączył: 7.09.2003

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


hmm a dolaczyles klase 'template'?
Jeśli szybko potrzebujesz coś rozwiązać i nie zależy ci na najlepszej jakości to możesz rozwiązać to na wiele sposobów...pokombinuj...


--------------------
Oooo, cia is on the phone... Ok, I got it. Shit I lost it.
Go to the top of the page
+Quote Post
Bielo
post
Post #3





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 21.09.2003
Skąd: Truskaw

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


zrobiłem to tymczasowo w ten sposób[php:1:bec414011a]<?php
function __construct()
{
global $tpl;
$this->template_engine=$tpl;
}

?>[/php:1:bec414011a]

Ale myślę, że jest jeszcze jakieś lepsze rozwiązanie słyszałem coś o :: (dwóch dwukropkach), ale nie wiem jak działają


--------------------
Go to the top of the page
+Quote Post
Ozzy
post
Post #4





Grupa: Zarejestrowani
Postów: 204
Pomógł: 0
Dołączył: 26.12.2003
Skąd: Rzeszów

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


metoda message musi być zadeklarowana jako statyczna:
[php:1:617616949a]<?php
public static function message ()
?>[/php:1:617616949a]
Go to the top of the page
+Quote Post
Bielo
post
Post #5





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 21.09.2003
Skąd: Truskaw

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


I jak się teraz powinienem do niej odwoływać??


--------------------
Go to the top of the page
+Quote Post
Skopi
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.02.2004
Skąd: Bydgoszcz

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


[php:1:5e7d1bf633]<?php
class temple{
function cos(){}
}
class db extends temple {
function db(){
parent::cos(); (lub) $this -> cos();
}
}
?>[/php:1:5e7d1bf633]

Ja sie zastanawialem ktore rozwiazanie jest wlasciwsze parent::cos() czy $this -> cos(), oba dzialaja w tym przypadku.


--------------------
Poziom zaawansowania: n00bek ;)
Go to the top of the page
+Quote Post
Bielo
post
Post #7





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 21.09.2003
Skąd: Truskaw

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


tylko ze chodzi o to zo to sa 2 oddzelne klasy


--------------------
Go to the top of the page
+Quote Post
Ozzy
post
Post #8





Grupa: Zarejestrowani
Postów: 204
Pomógł: 0
Dołączył: 26.12.2003
Skąd: Rzeszów

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


tak jak przedtem
[php:1:98ef3aa56a]<?php
template::message
?>[/php:1:98ef3aa56a]
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 17:36