Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> obiektowy - dziedziczenie
SN@JPER^
post
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Witam,

bawię się obiektowym PHP, nasuwa mi się myśl, jak np. z pliku function_sql.class.php,gdzie jest klasa class Sql, w której znajduje sie funkcja:

  1. <?php
  2. public function wyswietl($message)
  3. {
  4. echo $message;
  5. }
  6. ?>

połączyć ją z classą Rejestracja gdzie znajduje się w pliku rejestracja.class.php

próbowałem tak:

  1. <?php
  2.  
  3. require_once('function_sql.class.php');
  4. class Rejestracja extends Sql
  5. {
  6. $this->wyswietl(ziomek!);
  7. }
  8.  
  9. ?>


ale niestety nie działa...

Prosiłbym o cenne uwagi.

Pozdrawiam

Ten post edytował SN@JPER^ 19.05.2007, 13:22:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
Sokal
post
Post #2





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 8.02.2007

Ostrzeżenie: (10%)
X----


Jak użyjesz dziedziczenia (extends) to metody i pola są dołączane do dziecka winksmiley.jpg


--------------------
Jabber/E-Mail: dominiksokal[at]gmail.com | GG: #3795571
Go to the top of the page
+Quote Post
SN@JPER^
post
Post #3





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


aha, jak zrozumiałem extends działa podobnie jak include - dołącza... i wywołanie:

  1. <?php
  2. {
  3. $this->wyswietl(ziomek!);
  4. }
  5. ?>


nie jest potrzebne ?

Ten post edytował SN@JPER^ 19.05.2007, 12:48:00
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(SN@JPER^ @ 19.05.2007, 13:31:39 ) *
ale niestety nie działa...

Prosiłbym o cenne uwagi.
Hmm, myślę że fair będzie jeśli uwagi będą tak samo cenne jak pytanie.
<ironia>Otóż: pewnie na balkonie łazi mucha. Pogoń ją to zacznie działać.</ironia>

Jeśli piszesz że coś nie działa to powiedz co to dla Ciebie oznacza. Nie wyświetla się coś, wyświetla ale nie to czego chcesz.
Jaki masz poziom raportowania błędów? Czy wyświetlają się jakieś błędy? Jeśli tak to jakie? Jeśli nie to też napisz, że nie.

Polecam: Jak mądrze zadawać pytania

A teraz podpowiedź:
Brak Ci totalnych podstaw, stringi daje się w apostrofach albo cudzysłowach.
Łańcuchy znaków (string)


P.S.
Proszę poprawić tytuł wątku na spełniający zasady formułowania tytułów wątków opisanych w Regulaminie.
Inaczej wątek zostanie zamknięty.
Go to the top of the page
+Quote Post
kwiateusz
post
Post #5


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




do tego po co dodawać specjalną metode żeby tylko echo nią opakować, do tego

  1. <?php
  2. $this->wyswietl(ziomek!);
  3. ?>


z

  1. <?php
  2. class Rejestracja extends Sql
  3. {
  4. $this->wyswietl(ziomek!);
  5. }
  6. ?>


znajduje sie w jakiejś funkcji czy tylko lezy luzem?
Go to the top of the page
+Quote Post
webdice
post
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2.  
  3. require_once('function_sql.class.php');
  4. class Rejestracja extends Sql
  5. {
  6. $this->wyswietl('ziomek!');
  7. }
  8.  
  9. ?>


EDIT: Źle sobie popatrzyłem, daj:

  1. <?php
  2.  
  3. require_once('function_sql.class.php');
  4. class Rejestracja extends Sql
  5. {
  6.  
  7. public function __construct ()
  8. {
  9. $this->wyswietl('ziomek!');
  10. }
  11. }
  12.  
  13. ?>


Ten post edytował webdicepl 19.05.2007, 13:21:54
Go to the top of the page
+Quote Post
SN@JPER^
post
Post #7





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


A jak to będzie w przypadku połączenia z bazą, tak(?):


fuction_sql.class.php:

  1. <?php
  2.  
  3. class Sql
  4. {
  5.  public function connect_db($host_db, $user_db, $haslo_db, $baza_db)
  6.  {
  7.  mysql_connect($host_db, $user_db, $haslo_db);
  8.  mysql_select_db($baza_db);
  9.  }
  10. }
  11.  
  12.  
  13.  
  14.  
  15. ?>


rejestracja.class.php:

  1. <?php
  2.  
  3. require_once('funkcje/function_sql.class.php');
  4.  
  5. class Rejestracja extends Sql
  6. {
  7.  
  8. $this->connect_db('localhost', 'root', '', 'sss');
  9.  
  10. }
  11.  
  12. ?>


Jednakże, gdy tak zrobiłem wyskakuje komunikat:


Parse error: parse error, unexpected T_VARIABLE, expecting T_FUNCTION in D:\......\rejestracja.class.php on line 8

EDIT:

Zobaczylem wy edytowany post:

rejestracja.class.php:

  1. <?php
  2.  
  3. require_once('funkcje/function_sql.class.php');
  4.  
  5. class Rejestracja extends Sql
  6. {
  7.  
  8. function __construct()
  9. {
  10. $this->connect_db('localhost', 'root', '', 'sss');
  11. }
  12. }
  13.  
  14. ?>


Ten post edytował SN@JPER^ 19.05.2007, 13:28:35
Go to the top of the page
+Quote Post
webdice
post
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. $this->connect_db('localhost', 'root', '', 'sss');
  3. ?>


Nie możesz sobie tego dać gdziekolwiek w klasie. Musisz umieścić to w jakiejś metodzie.
Go to the top of the page
+Quote Post
kwiateusz
post
Post #9


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




rozumiesz zasade działania klas? w klasie sią tylko zmienne i metody(funkcje) nie moze tam nic luzem leżeć...
Go to the top of the page
+Quote Post
SN@JPER^
post
Post #10





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Dlatego wyedytowałem post, jak zobaczyłem ten poprzedni...

tylko, w tym tkwi problem iż dane do bazy są poprawne mimo tego, nadal jest napisane, że nie...:


function_sql.class.php
  1. <?php
  2.  
  3. class Sql
  4. {
  5.  public function connect_db($host_db, $user_db, $haslo_db, $baza_db)
  6.  {
  7.  mysql_connect($host_db, $user_db, $haslo_db);
  8.  mysql_select_db($baza_db);
  9.  }
  10. }
  11.  
  12.  
  13. ?>


rejestracja.class.php

  1. <?php
  2.  
  3. require_once('funkcje/function_sql.class.php');
  4.  
  5. class Rejestracja extends Sql
  6. {
  7. function __construct()
  8. {
  9.  if(!$this->connect_db('localhost', 'root', '', 'sss')){echo 'złe połączenie z baza danych';}
  10. }
  11. }
  12.  
  13. $class = new Rejestracja();
  14.  
  15.  
  16. ?>


Ten post edytował SN@JPER^ 19.05.2007, 13:35:52
Go to the top of the page
+Quote Post
webdice
post
Post #11


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Bo funkcja connect_db nic nie zwraca, w tej funkcji sprawdź czy połączenie jest ok i daj return true.
Go to the top of the page
+Quote Post
SN@JPER^
post
Post #12





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Dzięki wielkie, odrazu lepiej...

Trudne te klasy...

PS: Przepraszam za durne pytania.

Pozdrawiam
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: 22.08.2025 - 04:59