| 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;
} // abcJe 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;
} // abcTaky 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: 14 let
|
|||
0