Bielo
19.04.2004, 14:45:13
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
Dravo
19.04.2004, 15:02:14
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...
Bielo
19.04.2004, 15:11:18
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ą
Ozzy
19.04.2004, 17:28:15
metoda message musi być zadeklarowana jako statyczna:
[php:1:617616949a]<?php
public static function message ()
?>[/php:1:617616949a]
Bielo
19.04.2004, 18:04:57
I jak się teraz powinienem do niej odwoływać??
Skopi
19.04.2004, 19:04:53
[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.
Bielo
20.04.2004, 14:42:34
tylko ze chodzi o to zo to sa 2 oddzelne klasy
Ozzy
21.04.2004, 10:47:25
tak jak przedtem
[php:1:98ef3aa56a]<?php
template::message
?>[/php:1:98ef3aa56a]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.