Jak pozyskać $$zmienną tablicową ? |
Jak pozyskać $$zmienną tablicową ? |
12.09.2014, 00:43:36
Post
#1
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 19.08.2009 Ostrzeżenie: (0%) |
Czy da się pozyskać zmienną tablicową z nazwy podanej w zmiennej (przy okazji - jak to się nazywa dla zwykłych, nietablicowych zmiennych, bo zapomniałem ;( ) ?
Chodzi mi o to, że działa to:
ale to już nie:
bo parser nie widzi zmiennej, a chciałbym użyć właśnie tej drugiej opcji... Da się to jakoś obejść i wyłuskać zmienną tablicową ? W sumie to konkretniej chodzi o $this->tablicowe dla obiektu, który używa zmiennej z zasięgiem private. Chcę ją pozyskać metodą sprawdzającą wcześniej czy można pobrać takiego private i do tego ma być to zmienna z tablicy. Heh, już tak dawno w PHP nie pisałem, że jeśli coś niejasno wyraziłem w poście, to sorry Ten post edytował iksigrek 12.09.2014, 00:51:07 |
|
|
12.09.2014, 07:29:18
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 447 Pomógł: 6292 Dołączył: 27.12.2004 |
Skoro to jest private, to poza obiektem nie masz do tego dostepu i koniec. Dlatego to się właśnie nazywa PRIVATE
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
14.09.2014, 19:53:18
Post
#3
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 19.08.2009 Ostrzeżenie: (0%) |
Dobra, to poproszę o czytanie ze zrozumieniem. Proszę również o odpowiedź przed przeczytaniem drugiej części pytania (dot. obiektu). Może niepotrzebnie napisałem, że chcę to użyć w obiekcie. No ale jak już jest, to niech zostanie. Może ktoś, kto ewentualnie ma pomysł jak to obejść w tym wypadku i domyśla się po co mi dostęp selektywny do private pomoże. Ogólnie jednak - nie ma znaczenia czy z obiektu i czy to private czy nie private (można się domyślić po tym, że pierwszy przykład działa, a gdyby obie były private, to nie powinien).Podstawowe pytanie brzmi jak taką zmienną pozyskać (tablicową) w opisany $$sposób, np. z pliku index.php po prostu, bez stosowania funkcji, obiektów, czy czego kolwiek innego poza wklejonym kodem. bo podany powyżej przykład był testowany właśnie w taki sposób.
Ten post edytował iksigrek 14.09.2014, 20:09:20 |
|
|
14.09.2014, 20:50:39
Post
#4
|
|
Grupa: Zarejestrowani Postów: 285 Pomógł: 18 Dołączył: 30.01.2014 Skąd: <?=$_GET['city']?> Ostrzeżenie: (0%) |
Cytat (przy okazji - jak to się nazywa dla zwykłych, nietablicowych zmiennych, bo zapomniałem ;( ) ? Zmienne zmienne. Ten post edytował ZaXaZ 14.09.2014, 20:51:27 -------------------- Jak poprawnie zadać pytanie || Generator #RRGGBB || Kurs: php, mysql <> html & css || Hosting || Validator: html, css || Narzędzia dla programistów |
|
|
14.09.2014, 21:53:17
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
25.09.2014, 15:54:22
Post
#6
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 19.08.2009 Ostrzeżenie: (0%) |
Dzięki ZaXaZ i Pyton_000 very mocz.
Pyton_000, na czym polega myk z Kod echo eval("return \$$proxy;"); zamiast Kod eval("echo $$proxy;"); (oba działają ok) ? Robisz przez zwróconą przez eval zmienną zamiast po prostu echo zmiennej w eval ze względu na mój przykład dla zastosowania w obiekcie, w celu ewentualnej dodatkowej validacji zawartości evala czy chodzi o coś jeszcze innego ? Ten post edytował iksigrek 25.09.2014, 16:32:03 |
|
|
26.09.2014, 21:43:24
Post
#7
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 2 Dołączył: 2.03.2012 Ostrzeżenie: (0%) |
Sprytny pomysł! (choć z nadużywaniem eval bym był ostrożny). Jak rozumiem chodzi o coś takiego w rozpisaniu: $a[1][2] = 'coś tam' // bo to ostatecznie chcesz podstawić $proxy = 'a[1][2]'; // nieprzetwarzana (w apostrofach!) robocza zmienna która będzie służyła jako nazwa zmiennej zmiennej $proxy2 = "\$$proxy"; // przetworzona zmienna (bo w cudzysłowiu) w której dzięki '\' parser traktuje pierwszy znak '$' jako po prostu znak a $proxy jako zmienną i zamienia na to co jest w zmiennej proxy czyli a[1][2]. Dzięki temu w zmn $proxy2 masz ciąg znaków (!) $a[1][2]. Jakbyś teraz po prostu użył echo $proxy2 to by wyświetliło tekst $a[1][2]. Ale w eval($proxy2) wykona ten ciąg znaków czyli podstawi 'coś tam' Ten post edytował miki22 26.09.2014, 21:47:25 |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 22:24 |