![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 17.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym, żeby w klasie tworzone były dynamiczne zmienne w przypadku gdy inna klasa odwołuje się do nieistniejącego pola. Np
W powyższym przypadku chciałbym żeby zostało utworzone automatycznie pole "title". |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
-------------------- ![]() 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! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 17.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
ok, dzięki set przechwytuje próbę zapisania w nieistniejącym polu, natępnie tworzę wewnątrz set dynamicznie nową zmienną. Wszystko ładnie, ale zmienna jest dostępna tylko wewnątrz funkcji set a ja chciałbym żeby była dostępna dla wszystkich funkcji wewnątrz klasy. Jak to zrobić?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A druga przeze mnie wymieniona funkcja, to?
![]() -------------------- ![]() 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! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
na jakich prawach tworzone jest dzieki temu pole , private , public ?
-------------------- Nie udzielam pomocy poprzez PW
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 17.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Po wywołaniu metody render w powyższej klasie powinno wyświetlić się "ok", bo odwołuje się do nieistniejącego pola a nic się nie wyświetla. Więc pewnie te funkcje działają tylko wtedy gdy próbujemy zapisać lub odczytać do lub z nieistniejącej zmiennej z zewnątrz klasy? Mi chodzi o to żeby po zapisaniu z obiektu innej klasy, funkcje klasy A mogły odczytywać zapisaną zmienną. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
poprawiony powyższy kod :
-------------------- Nie udzielam pomocy poprzez PW
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
Cytat Chciałbym, żeby w klasie tworzone były dynamiczne zmienne w przypadku gdy inna klasa odwołuje się do nieistniejącego pola. Np I. Język PHP jest językiem interpretowanym, nie musisz definiować/deklarować zmiennych przed ich użyciem. Chodzi o to że np. nie musisz deklarować chęci utworzenia zmiennej np. $zminna = 'cos'; // nic nie deklarujesz że chcesz taką zmienną, od razu piszesz jaką ma mieć wartość natomiast w przypadku struktur które mają wiele poziomów nie musisz deklarować ostatniej zmiennej. np. w przypadku $obiekt1-> obiekt2->nowa_zmienna obiekt 1 i obiekt2 muszą istnieć, ale nowa_zmienna "istnieć" już nie musi II. Lepszym rozwiązaniem wydaje mi się stworzenie w klasie A, właściwości klasy (ty nazywasz to chyba "polem") typu tablicowego która przechowywała by wszystkie "dynamicznie" utworzone zmienne Tutaj zrobiłem taki przykład według mnie spełniający twoje wymagania: Kod class A { public function __get ($var) { if (isset($this->$var)) { return $this->$var; } else { echo "Zmienna '$var' nie istnieje"; } } public function doSomething () { echo $this->title; } public function doSomething2 () { echo $this->title . ' v 2.0'; } } class B { public $object; public function __construct () { $this->object = new A(); $this->object->title = 'Strona glowna'; $this->object->doSomething(); } } $objB = new B(); echo "<br>"; $objB->object->doSomething2(); echo "<br>"; echo $objB->object->zmienna_ktora_nie_istnieje; PS. być może czegoś nie zrozumiałem, jeżeli tak, proszę o oświecenie mnie. -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Mam wrażenie że większość z was podaje przykładu których sama nigdy wcześniej nie używała
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 09:37 |