Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Include w obiekcie
ShadowD
post 25.01.2009, 00:59:53
Post #1





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Witam, mam strasznie dziwny by nie napisać głupi problem mianowicie mam klasę i w niej funkcję o wyglądzie:

  1. <?php
  2. class www
  3.  {
  4.    public $config;
  5.  
  6.    public function website()
  7.    {
  8.      include('plik.php');
  9.    }
  10.  }
  11. ?>


Teraz tworzę obiekt i wywołuję metodę website().

  1. <?php
  2. $www=new www();
  3.  
  4. $www->website();
  5. ?>


I bym mógł w zaincludowanym pliku użyć zmiennej $config musiał bym to zrobić sposobem:

  1. <?php
  2. $this->config;
  3. ?>


I wreszcie dochodzimy do pytania, w jaki sposób to wykonać bym mógł zwracać się do zmiennych czy też innych funkcji tego obiektu w sposób:

  1. <?php
  2. $www->config;
  3. ?>


Problem jest dziwny i nic oprócz zamiany wywołania metody na:

  1. <?php
  2. include($www->website());
  3. ?>


I odpowiednio zmodernizowania funkcji website() nie przychodzi mi na mysi, jeśli ktoś ma pomysł jak rozwiązać ten problem mugłby podzielić się pomysłem.

Ten post edytował ShadowD 25.01.2009, 01:00:59


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
erix
post 25.01.2009, 01:10:03
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Problem jest dziwny i nic oprócz zamiany wywołania metody na:

Nie wyjdzie, gdyż ta funkcja nie zwraca Ci ścieżki.

Cytat
I bym mógł w zaincludowanym pliku użyć zmiennej $config musiał bym to zrobić sposobem:

Niekoniecznie:

  1. <?php
  2. public function website()
  3.   {
  4.     $config = &$this->config;
  5.     include('plik.php');
  6.   }
  7. ?>

Wtedy normalnie korzystasz z $config.

Cytat
I wreszcie dochodzimy do pytania, w jaki sposób to wykonać bym mógł zwracać się do zmiennych czy też innych funkcji tego obiektu w sposób:

Jeśli chodzi dalej o tę samą funkcję:
  1. <?php
  2. public function website()
  3.   {
  4.     $www = &$this;
  5.     include('plik.php');
  6.   }
  7. ?>


Jeśli źle zrozumiałem, to naprostuj. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
ShadowD
post 25.01.2009, 01:18:45
Post #3





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Tak raczej źle zrozumiałeś, a w zasadzie ja źle napisałem... ;/

Mam metodę klasy którą dodaję jakiś plik.php i w tym pliku muszę zwracać się do funkcji obiektu przez $this->confg; a chciał bym to robić po nazwie obiektu czyli w tym wypadku $www.

Co do:
Cytat
Cytat
Problem jest dziwny i nic oprócz zamiany wywołania metody na:

Nie wyjdzie, gdyż ta funkcja nie zwraca Ci ścieżki.

Pisałem:
Cytat
I odpowiednio zmodernizowania funkcji website() nie przychodzi mi na mysi, jeśli ktoś ma pomysł jak rozwiązać ten problem mugłby podzielić się pomysłem.

Pisząc o modyfikacji miałem na myśli oczywiście zmianę metody tak by zwracała sam link. ;]

PS. Przepraszam za dwa tematy musiałem przez przypadek odświeżyć stronę od razu po dodaniu pierwszego.

Ten post edytował ShadowD 25.01.2009, 01:20:01


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
erix
post 25.01.2009, 01:25:15
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
nazwie obiektu czyli w tym wypadku $www.

To nie jest nazwa obiektu, tylko zmienna przechowująca do niego uchwyt.

Możesz podać jakieś sensowne uzasadnienie, dlaczego nie chcesz korzystać z $this?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
ShadowD
post 25.01.2009, 01:30:16
Post #5





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Z uchwytem masz rację, a z moim uzasadnieniem jest gorze nie wiem tak mi się po prostu wymyśliło pewnie dlatego bym nie korzystał z zmiennych prywatnych.

Tak wiem głupie wyjaśnienie, ale czy jest to możliwe powiedzmy, że teraz kieruje mną zwykła ciekawość? winksmiley.jpg

Ten post edytował ShadowD 25.01.2009, 01:30:51


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
erix
post 25.01.2009, 01:34:46
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Napisałem przecież:
  1. <?php
  2. $www = &$this;
  3. ?>


Ale to jest bez sensu, gdyż musisz tworzyć dodatkową zmienną, a $this jest - nazwę to - umowne.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 15:16