Autor Zpráva
Spectator
Profil
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
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
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
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
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
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
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
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;
atd.
Bertram
Profil
Spectator:
To samozřejmě jde a také u metod i tříd.
$promenaJakoNazevFunkce($param1,$param2);
$obj = new $promenaJakoNazevTridy;
Ale pokud daná vlastnost třídy nebude existovat, tak se vytvoří.
$this->neexistujiciVlastnost = "vytvoření nové vlastnosti objektu";
Spectator
Profil
už mi to došlo =)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: