Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $abc['title'] do zmiennej $title
Forum PHP.pl > Forum > PHP
widmogrod
siema

pytanie jak oprócz wykorzystania funkcji eval i foreach

zrobić coś takiego ze do wartości z tablicy $abc['title'] = 'mama'; mógłbym się odwoływać w skrypcie poprzez zmienną $title;
bigZbig
Zrób tak
  1. <?php
  2. $abc['title'] = 'cos';
  3. $title = $abc['title'];
  4. echo $title;
  5. // wyswietli sie "cos"
  6. ?>


Jesli to ci nie wystarcza to niestety nic nie wymyslisz. Mozesz oczywiscie pokombinowac aby zamiast $abc['title'] uzywac $abc->title, ale to juz inna bajka zachaczajaca o OOP.
widmogrod
nie o to mi chodziło ... źle sprecyzowałem :/

a co w przypadku gdy będę miał dużą tablicę i chcę zrobić taką podmianę automatycznie questionmark.gif

OOP też mi pasuję,tylko narazie sobie tego nie wyobrażam jak to by mogło wyglądać ... jakieś sugestie questionmark.gif
mike
Znów nie wiadomo o co Ci chodzi.

  1. <?php
  2.  
  3. $arrTab = $array( 'jeden', 'dwa', 'trzy', 'cztery', 'pięć' );
  4.  
  5. for( $i = 0, $intCount = count( $arrTab ); $i < $intCount; $i++ )
  6. {
  7. $arrTab[ $i ] = 'mama';
  8. }
  9.  
  10. ?>


:?: :?:
kszychu
Ciepło, cieplej....
Czuję, że chodzi o to:
  1. <?php
  2. $abc = arraj('indeks1' => 'aaa', 'indeks2' => 'bbb', 'indeks3' => 'ccc');
  3. foreach($abc as $indeks => $wartosc)
  4.  $$indeks = $wartosc;
  5.  
  6. echo $indeks1.' '.$indeks2.' '.$indeks3;
  7. ?>


Sorry, miało być bez foreach. Zastąpmy to więc each() i pętlą while.
  1. <?php
  2. while (list($indeks, $wartosc) = each($abc))
  3.  $$indeks = $wartosc;
  4. ?>
widmogrod
  1. <?php
  2. $view = array (
  3. 'title' => 'tytuł strony',
  4. 'content' => 'a tutaj tresc'
  5. (...)
  6. );
  7. ?>


i teraz chcę mieć pod zmiennymi następujące wartości i nie chcę tego robić tak jak to zaproponował @bigZbig

  1. <?php
  2. print $title; // zwraca: tytul strony
  3. print $content; //zwraca a tu tresc
  4. ?>


chciałbym żeby to się robiło zautomatycznie winksmiley.jpg .. teraz jaśniej ?

@ kszychu

O!
o to mi chodziło biggrin.gif

.. nie wiedziałem że można zrobić coś takiego

$$indeks = $wartosc;

bardzo fajna sprawa, wielkie dzięki biggrin.gif
matrach
A nie można poprostu extract()?

  1. <?php
  2. $abc = arraj('title' => 'WoW', 'cos' => 'cos wartosc', 'klucz' => 'wartosc');
  3. extract($abc);
  4. echo $title . ' ' . $cos . ' ' . $klucz
  5. ?>
mike
Cytat(widmogrod @ 30.05.2006, 14:11 ) *
(...)
.. nie wiedziałem że można zrobić coś takiego

$$indeks = $wartosc;


Podręcznik php -> Zmienne -> Zmienne zmienne
kszychu
Drobiazg. A żeby wywołać u Ciebie jeszcze większą wdzięczność dla mnie (co najmniej klasy 1 piwa ;-) ) dodam, że konstrukcje nazw zmiennych mogą być bardziej złożone, np. ${'jakis_napis'.$zmienna}. A jak postawisz flaszkę, to pokażę Ci, gdzie w manualu jest to opisane!



---
Kurcze, przeze mnie jestes flaszke w plecy sad.gif
~mike_mech
widmogrod
extract - to też jest niezłe szczegulnie z tym parametrem:

EXTR_SKIP - Jeśli istnieje kolizja, nie nadpisuj istniejącej zmiennej. zmienną.

@kszychu: hehe .. nie ma problemu ale razem pijemy biggrin.gif

ps. teraz to mi głupio że takie podstawy mi z głowy wyskoczyły .. niedobrze :/
bigZbig
@widmogrod - a gdybys przypadkiem chcial sie skierowac w strone programowania obiektowego proponuje przeanalizowac ponizszy przyklad.

  1. <?php 
  2. class MyArrayIterator extends ArrayIterator
  3. {
  4. public function __get($sProperty) {
  5. if($this[$sProperty]) {
  6. return $this[$sProperty];
  7. }
  8. }
  9.  
  10. public function __set($sProperty, $mValue) {
  11. $this[$sProperty] = $mValue;
  12. }
  13. }
  14. $a = new MyArrayIterator();
  15. $a[] = 'cos';
  16. $a['asoc'] = 'kicha';
  17.  
  18. echo $a->asoc.'<br />';
  19. $a->asoc = 'foo';
  20. foreach ($a as $key => $value) {
  21. echo $key.' => '.$value.'<br />';
  22. }
  23. ?>
widmogrod
właśnie się kieruję .. porzuciłem już php4 i teraz zaczynam przygodę z php5 OOP

bardzo fajny przykład zastosowania metod specjalnych i iteratora podoba mi się winksmiley.jpg ( ... rozwiązujący mój problem winksmiley.jpg)

a teraz dużaaaa i długa lektórka http://pl.php.net/manual/pl/ref.spl.php i mam nadzieje ze nie ostatnia ...
ostatnio też męczę http://www.phppatterns.com/ ,php Pro na tym forum i parę frameworków ... zobaczymy co z tego wyniknie ...
napewno sam coś będę chciał napisać ... ale koniec spamowania

dzieki, czołęm!
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.