Autor Zpráva
VelkyBubak
Profil *
$aktualniStranka = "postavy";
$postavyOstatni = array("obrazky","anime","dorama","manga");
$Ostatni = $aktualniStranka."Ostatni";

Jak pomocí $Ostatní přistoupit k proměnné $postavyOstatni[0]

myslel jsem že by mohlo fungovat něco jako $$Ostatni[0] ale tak tomu není
ShiraNai7
Profil
${$Ostatni}[0] ale není to dobrá praktika (resp. dá se to řešit jinak a lépe).
Joker
Profil
VelkyBubak:
Proč nepoužijete normální pole?
$ostatni["postavy"] = array("obrazky","anime","dorama","manga");
$aktualniStranka = "postavy";
echo $ostatni[$aktualniStranka][0];

Proměnné proměnné jsou jen takový úlet v PHP a je lepší se tvářit, že taková vlastnost vůbec neexistuje.
VelkyBubak
Profil *
Joker:
Proč? Snažím se z adresy aktuální stránky sestavit odkazy na ostatní stránky.
Až na jeden parametr z GET (typVypisu) je adresa stejná. Takže se snažím nahradit jen one parametr, dostat to do odkazu, udělat to tak aby se to dalo číst (vyznat se v tom) a nic lepšího mě nenapadlo.

$aktualniHTTP = ".$_SERVER['REQUEST_URI]http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$aktualniStranka = $_GET["typVypisu"]; //resp. parametr, může nabývat hodnot obrazky, anime, dorama, manga, postavy

    $postavyOstatni = array("obrazky","anime","dorama","manga");
    $obrazkyOstatni = array("postavy","anime","dorama","manga");
    $animeOstatni = array("postavy","obrazky","dorama","manga");
    $doramaOstatni = array("postavy","obrazky","anime","manga");
    $mangaOstatni = array("postavy","obrazky","anime","dorama");
    
$Ostatni = $aktualniStranka."Ostatni";  

$str2 = str_replace($aktualniStranka,${$Ostatni}[0],$aktualniHTTP); //na co změnit
$str3 = str_replace($aktualniStranka,${$Ostatni}[1],$aktualniHTTP);
$str4 = str_replace($aktualniStranka,${$Ostatni}[2],$aktualniHTTP);
$str5 = str_replace($aktualniStranka,${$Ostatni}[3],$aktualniHTTP);

Děkuji ShiraNai7 za odpověď.

Jen tak pro pořádek - může mi někdo vysvětlit, proč to není dobrá praktika a je lepší se tvářit že neexistuje? Nebo to žádný specifický důvod nemá?
ShiraNai7
Profil
VelkyBubak:
proč to není dobrá praktika a je lepší se tvářit že neexistuje?

Protože to svádí je zbytečně složitým řešením. Proč to nemůžeš mít celé v jednom poli a přistupovat k tomu tak, jak píše Joker?

$typy= array(
    'postavy' => array("obrazky","anime","dorama","manga"),
    'obrazky' => array("postavy","anime","dorama","manga"),
    'anime' => array("postavy","obrazky","dorama","manga"),
    'dorama' => array("postavy","obrazky","anime","manga"),
    'manga' => array("postavy","obrazky","anime","manga"),
);

Navíc mi to přijde celé divné, když jsou všechny ty pole stejné.
Sir Tom
Profil
Takže vlastně chceš udělat to, že když budeš na stránce postav, aby se do proměnných $strX daly odkazy na obrázky, anime, dorama, manga? A když budeš na stránce obrázků, chceš mít odkazy na postavy, anime, dorama, manga? Tento způsob je dost komplikovaný.

Není lepší toto?
$typy = array("postavy", "obrazky", "anime", "dorama", "manga");
$aktualniTyp = $_GET["typVypisu"];

$stranky = array();
foreach($typy as $typ){
 if($typ==$aktualniTyp) continue;
 $stranky[] = "nejakySoubor.php?typVypisu=".$typ;
}

A v proměnné $stranky máš ty odkazy.
VelkyBubak
Profil *
Sir Tom:
Aha, pomocí foreach (to jsem neznal) se vyhnu těm x polím, a
$str2 = str_replace($aktualniStranka,${$Ostatni}[0],$aktualniHTTP);
a další podobné nahradím za pole
$stranky[] = str_replace($aktualniTyp,$typ,$aktualniHTTP);
Děkuji.

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: