Autor Zpráva
gagi
Profil
Je to asi dost blbej dotaz, ale v php začínám a nikde jsem přímo nenašel co znamená "as", většinou použito:
$promenna1 as $promenna2

díky moc :-D
Alphard
Profil
Nevytrhl jste to trochu z kontextu?
foreach($promenna1 as $promenna2)

Je to zvláštní konstrukce pro procházení pole, viz manuál.
Nox
Profil
Myslím že se to používá jen v syntaxi foreach a specifikuje to, jak se bude jmenovat proměnná při iteraci, např.

$tyden = array("pondělí", "úterý"...);
foreach($velkePole as $prvek){
  echo "- $prvek<br>";
}

vezme postupně každý prvek z pole a dá ho dostupný pod jménem napsaným za "as"
mattyZEM
Profil
Jde o to, že pokud by jsi měl proměnnou která má v sobě více údajů musel by jsi to vypisovat buď ručně ($promenna[cislo]) nebo pak foreachem (foreach($promenna as $cokoliv){echo $cokoliv;})...

Foreach to za tebe udělá + pak nemusíš řešit kolik těch údajů v té proměnné je. Dejme tomu že chci vypsat IP z bany.txt

$bany=explode("\n", file_get_contents("bany.txt"));
echo $bany[2]; // Vypíše obsah řádku 3! (pozor, i nula je řádek)
foreach($bany as $ip){
  echo $ip;
} // teď ti to vytáhne obsah celého souboru a vypíše naráz..
srigi
Profil
Alphard:
as sa pouziva aj v kontexte use pri namespace-och v php 5.3

use \foo\bar as baz;
Alphard
Profil
[#5] srigi
Na to jsem zapomněl, moc s tím nepracuji. Nicméně si myslím, že tohle není věc, se kterou se gagi setkal.
gagi
Profil
Ano, měl jsem na mysli foreach, takže jestli to dobře chápu, tak "as" zapříčiní, že to bere jednotlivé hodnoty (pole) postupně a těm to vždy přiřadí vybranou proměnnou?
AM_
Profil
obráceně, ty hodnoty se přiřadí do té proměnné:
foreach ($files as $key=>$file) znamená, že postulně hodnoty z $files přiřazuje do $file, kde s nimi pracuješ ($key jsem uvedl pro úplnost, jak se dá pracovat s asociativním polem).
PHP5 má tuto pěknou věc: foreach ($files as $key=>&$file) funguje jako klasické předání referencí, takže když uděláš změnu v $file, projeví se i v příslušném záznamu v $files.
gagi
Profil
Jo jasný, jsem to blbě napsal, tak dík všem :-D
Toto téma je uzamčeno. Odpověď nelze zaslat.