Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Include w obiekcie
Forum PHP.pl > Forum > Przedszkole
ShadowD
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.
erix
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
ShadowD
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.
erix
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?
ShadowD
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
erix
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.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.