Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odwoływanie do drugiej klasy
adam882
post
Post #1





Grupa: Zarejestrowani
Postów: 289
Pomógł: 1
Dołączył: 2.11.2007

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


Witam

Mam problem z odwołaniem się jednej klasy do drugiej. Są to moje początki w obiektowym pisaniu, więc problem może okazać się banalny.

Posiadam takie dwie klasy - pierwsza 'Mysql', a druga 'Pager' (jedna utworzona w zmiennej $sql, a druga w $pager).
Chciałem wykonać coś takiego:
Kod
<?php
class Pager
{

        var  (......)

        function __construct($tabela,$obecnastrona,$limit,$url)
        {
               global $sql;
               $sql->cache('ile');
                       $sql->query('select count(id) from newsy');
                       $wszystkie=$sql->rows['count(id)'];
               $sql->cache();
        }
          
}
?>

i tutaj wywala mi błąd Call to undefined method sql::cache(), wszystko przez to, że wywołuję $sql wewnątrz klasy (dlatego global $sql nie pomaga). Użyłbym extends, ale $sql zostało utworzone wcześniej wraz z konstruktorem połączenia do bazy ( $sql= new sql_connect('host','user','pass','baza'); ). Czy w jakiś sposób mogę wywołać $sql wewnątrz klasy?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


O tym jak przekazać obiekt do innego było już dziesiątki razy - użyj wyszukiwarki.

btw: dziedziczenie? A w jaki to niby sposób pager rozszerza mysqla? Nie, to że go wykorzystuje to nie znaczy, że rozszerza.
Go to the top of the page
+Quote Post
em1X
post
Post #3





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


bleee, niby obiektowo a przekazujesz globalem zmienne (fuj)

1) nie możesz na początku skryptu dać
  1. <?php
  2. // tutaj gdzies w skrypcie tworzysz obiekt
  3. $pager=new Pager;
  4.  
  5. // przypisac jakiemus polu w klasie pager klasy mysql?
  6. $pager->sql=new mysql;
  7. ?>


2) piszesz var.. - to jest konstrukcja <=php4, a dalej __construct() co jest konstrukcją >php5
może czas się zdecydować, w której wersji piszesz? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował em1X 20.06.2009, 13:00:59
Go to the top of the page
+Quote Post

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: 22.08.2025 - 16:08