Autor | Zpráva | ||
---|---|---|---|
Spectator Profil |
#1 · Zasláno: 14. 1. 2012, 11:28:07
Nadpis je možná špatně položený.
Nerad bych vytvářel nějaké hrůzy, ale rád bych docílil něčeho podobného: $poleCisel = array(1,2,3); $poleZnaku = array('a','b','c'); $nazev = '$poleCisel'; foreach ($nazev as $polozka) { echo $polozka; } // 123 $nazev = '$poleZnaku'; foreach ($nazev as $polozka) { echo $polozka; } // abc Je to možné? Pokud je to prasárna, tak mě prosím okamžitě zbičujte, pokud ne až taková, tak prosím poraďte. Děkuji |
||
tatyalien Profil |
#2 · Zasláno: 14. 1. 2012, 11:38:29
Proč pak rovnou neuděláš:
foreach ($poleCisel as $polozka) { echo $polozka; } // 123 foreach ($poleZnaku as $polozka) { echo $polozka; } // abc Taky můžeš udělat: //$nazev = '$poleCisel'; špatně $nazev = $poleCisel; // správně do proměnné název zkopíruješ poleCisel $nazev = $poleZnaku; // přepsání proměnné název polemZnaků |
||
abc Profil |
#3 · Zasláno: 14. 1. 2012, 11:41:47
Spectator:
K čemu to má sloužit? Mě osobně by se víc líbilo udělat si funkci a té předávat jako parametr pole: $poleCisel = array(1,2,3); $poleZnaku = array('a','b','c'); function vypisPole($pole){ foreach ($pole as $polozka){ echo $polozka; } } vypisPole($polecisel); //123 vypisPole($polseZnaku); //abc |
||
Spectator Profil |
#4 · Zasláno: 14. 1. 2012, 11:47:30 · Upravil/a: Spectator
já to zjednodušil, ale chtěl jsem udělat univerzální metodu
private $poleCisel = array(); private $poleZnaku = array(); private function makeElementAttr($element, $name, $attributes) { $allowed_attributes = array('a' => 1, 'b' => 2) foreach ($attributes as $key => $value) { if (in_array($key, $allowed_attributes)) { $this->$element[$name][$key] = $value; } } } tak mě právě napadlo, že to můžu sloučit do jednoho pole. |
||
Bertram Profil |
#5 · Zasláno: 14. 1. 2012, 12:00:50
Spectator:
Ahoj, na parametr metody se neodkazuje přes $this. Také se mi nezdá ta "utajená" proměnná $allowed_attributes. Prozradíš mi co má daná metoda dělat? |
||
Spectator Profil |
#6 · Zasláno: 14. 1. 2012, 12:04:58
Bertram:
- právě, že já chtěl mít ten název členské proměnné závislý na obsahu v proměnné element. - $allowed_attributes je seznam povolených hodnot, které mohou být zpracovány z parametru $attributes |
||
Bertram Profil |
#7 · Zasláno: 14. 1. 2012, 12:17:55
Spectator:
Ahoj, spíš jsem se ptal, kčemu slouží ta metoda makeElementAttr($element, $name, $attributes). Evidentně je to metoda nějaké Třídy, o které také nic nevím. Ptám se proto, abych pochopil oč se snažíš a popřípadě poradil/řekl svůj názor. |
||
Spectator Profil |
#8 · Zasláno: 14. 1. 2012, 12:27:49 · Upravil/a: Spectator
jde o jednoduchou tvorbu formulářových prvků. Každý nový si chci uložit do té proměnné pole... (zkopírované názvy z úvodního příkladu jsou trochu mimo) . Práv jsem taky před chvílí psal, že by to možná šlo rovnou dát do jednoho velkého pole, kde by byly všechny prvky.
Hlavně mi šlo o to, zda je možné nějakým podobným způsobem dynamicky měnit název pole, ak aby to bylo třeba: $element = 'tlacitko'; $this->$element[$name][$key] = $value; // $this->tlacitko[$name][$key] = $value; |
||
Bertram Profil |
#9 · Zasláno: 14. 1. 2012, 12:52:31
Spectator:
To samozřejmě jde a také u metod i tříd. $promenaJakoNazevFunkce($param1,$param2); $obj = new $promenaJakoNazevTridy; $this->neexistujiciVlastnost = "vytvoření nové vlastnosti objektu"; |
||
Spectator Profil |
#10 · Zasláno: 14. 1. 2012, 13:23:29
už mi to došlo =)
|
||
Časová prodleva: 11 let
|
0