Autor Zpráva
TomAsQo
Profil
ahoj zaujimalo by ma
1) aky je rozdiel medzi asociativnym a neasiciativnym polom
2) --------- ||------------ premennou takouto:


class Foo{
$this->foo = "foooo";

}



a takouto:



class Foo{
foo = "foooo";

}



diky ;)
bukaj
Profil
ad 1. Asociativní pole je takové, kde za indexy jsou dosazeny nějaké zástupné řetězce. Neasociativní pole má klasicky indexy číslované od nuly, a poté každý nově přidaný prvek dostane další index.

ad 2. Rozdíl je v tom, že to první asi nebude fungovat. Ten první zápis se používá ve fcích uvnitř třídy (nikoli přímo v třídě, tudíž takto nebude fungovat), k přístupu ku proměnným, které jsou definovány (či deklarovány) uvnitř třídy. Ten druhý zápis také nebude fungovat, protože se proměnné v třídě musí definovat s klíčovým slovem var či jedním z klíčových slov určující její viditelnost - public, protected či private. Ale po přidání některého z klíčových slov se proměnná zařadí do struktury třídy.

Př.

Class Trida{
var $promenna = "Já jsem proměnná ve třídě Trida.";
function vypisPromennou(){
echo $this->promenna;
}
}
$trida = new Trida;
$trida->vypisPromennou(); //vypíše "Já jsem proměnná ve třídě Trida.";
TomAsQo
Profil
ja kazdopadne chcem len lokalnu premennu vo vnutri metody triedy(je to len pomocna premenna).
da sa to nejak?alebo "som odsudeny" na:


class Foo{
var $foo;

function blablabla(){
$this->foo;//len takto mozem odkazovat?
}

}

???
Mastodont
Profil
TomAsQo
Pokud chceš jen lokální proměnnou uvnitř jedné metody třídy, tak je to úplně stejné jako mimo objekt:

function blablabla(){

$foo = "blabla";
}
bukaj
Profil
To jsem nepochopil.
Pokud jde o lokální proměnné uvnitř metod, tak těch si můžeš udělat kolik chceš. Proměnné uvnitř třídy většinou slouží k uchování informací, aby si je mohly předávat metody třídy mezi sebou.
TomAsQo
Profil
uz nic, uz mi doslo, ze lokalne pomocne premenne v metode mozem pisat bez this(predtym som si myslel, ze VSADE musi byt this, lebo mi to hadzalo chybu, az neskor som zistil, ze chyba bola uplne inde ;-])

este by som mal tretiu lahku otazku, totiz, ze aky je rozdiel medzi



$foo = new Foo;

a

$foo = & new Foo;

:)
bukaj
Profil
TomAsQo
V druhém případě jde o předávání reference.
Mastodont
Profil
TomAsQo
V PHP4 byla v prvním případě vytvořena kopie objektu, ve druhém byl předán odkaz na objekt.
TomAsQo
Profil
mnoo az taka extra lama niesom, ze by som nevedel, co je to odkaz na premennu, ale odkaz na object?
to akosi nechapem...
ked mam napr.

$foo = new Foo;

$foooo = &new Foo;

tak to znamena, ze $foo je to iste ako $foooo, alebo ze sa nevytvara ziadna instancia objektu, ale len odkaz nanho? pls vysvetlite :)
TomAsQo
Profil
ked sme uz pri odkazoch, je toto dobry kod?

function foo(&$sess){}

foo($_SESSION);

? toto je teoreticky referencia na session, ale potom, ked modifikujem $sess vo vnutri funkcie, tak sa zmeni aj povodny session?

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:

0