Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dostęp do metody z innej klasy
acztery
post
Post #1





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


witam,

mam mały klopot nie

mamy naprzykład dwie różne klasy które korzystaja z konstruktora.

W klasie A nie korzystam z metod z innych klas

ale w klasie B korzystam z medoty z kasy A. Jak nie mialem konstruktora odwoływałem sie tak KlasaA::medotaKlasyA().

Teraz nie moge tak zrobic bo konstruktor nie zostanie wywołany. jak to się robi tak aby było dobrze napisane

ja mam 1 pomysl

  1. <?php
  2. $klasaA = new A();
  3. $KlasaA->metoda();
  4. ?>


ale nie wiem czy tak mozna i czy to jest zgodne z Obiekotwym PHP5, moze jakies pomysły

Ten post edytował acztery 23.12.2006, 20:24:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
acztery
post
Post #2





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


LBO po co miał bym kłamać.

ok mam taki kod

  1. <?
  2. // plik Doc.php
  3. include_once 'Lang.class.php';
  4. class Doc extends Doc {
  5.  
  6. protected $DataObject;
  7.  
  8. public function __construct()
  9. {
  10. $this->DataObject = DB_DataObject::factory('documents');
  11.  
  12. }
  13.  
  14.  
  15. final function countDoc($_where='' , $_lang)
  16. {
  17. // Count category
  18.  
  19. if ($_where <> '') {
  20. $this->DataObject->whereAdd("Parent = '$_where'");
  21. }
  22. if ($_lang <> '') {
  23. $this->DataObject->whereAdd("Lang = '$_lang'");
  24. }else{
  25. $this->DataObject->Lang = Lang::getDisLang(); // tu cos nie działa
  26. }
  27. return $this->DataObject->count();
  28. }
  29. }
  30.  
  31. ?>
  32.  
  33. klasa Lang plik Lang.php
  34.  
  35. <?
  36. include_once 'Doc.class.php';
  37. class Lang extends Doc {
  38.  
  39. protected $DataObject;
  40.  
  41. public function __construct()
  42. {
  43. $this->DataObject = DB_DataObject::factory('lang');
  44.  
  45. }
  46.  
  47. final static function getDisLang()
  48. {
  49.  
  50. $this->DataObject->query("set names 'utf8'");
  51. $this->DataObject->display='Y';
  52. $this->DataObject->selectAdd('Prefix as value');
  53. $this->DataObject->find();
  54. while ($this->DataObject->fetch())
  55. {
  56.  $lang_->value;
  57. }
  58. return $lang_->value;
  59. }
  60. }
  61.  
  62. ?>



Czy dobrze to napisane bo nie działa, mam puste tło. a jak zamienie w pliki Lang.php na:
  1. <?php
  2. public function getDisLang()
  3. {
  4. $lang_ = DB_DataObject::factory('lang');
  5. $lang_->query("set names 'utf8'");
  6. $lang_->display='Y';
  7. $lang_->selectAdd('Prefix as value');
  8. $lang_->find();
  9. while ($lang_->fetch())
  10. {
  11.  $lang_->value;
  12. }
  13. return $lang_->value;
  14. }
  15. ?>


wywale konstruktor to działa. Moze z obiektowo pisze od paru dni wiec moge robic bledy czy widzicie cos zle?
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 21:40