ugrás a tartalomhoz

... és mégis tudja a PHP

presidento · 2007. Jún. 4. (H), 17.59
Volt egy dolog, amit nagyon hiányoltam a PHP-ból, és eddig sehol sem kaptam kielégítő választ, hogy miért nincs benne, nevezetesen, hogy ne kelljen eltárolnom egy visszatérési értékként kapott asszociatív tömböt, ha annak csak egy elemére vagyok kíváncsi.

Mert sajnos ilyet nem lehet:

$adat = bonyolultSzamitas($forras)['fontosAdat'];
Muszáj helyette például ilyet:

$adat = bonyolultSzamitas($forras);
$adat = $adat['fontosAdat'];
De ilyenkor nem következetesen használjuk az „adat” változónevet

Esetleg:

$tmp = bonyolultSzamitas($forras);
$adat = $tmp['fontosAdat'];
Azonban ekkor fel kellett venni egy plusz változót (szerintem) feleslegesen.

Egy ismert PHP tulajdonságot új módon kipróbálva, bizonyos esetekben (ha a „fontosAdat” szöveges információkat tartalmaz, használható az alábbi:

$adat = "{{bonyolultSzamitas($forras)}['fontosAdat']}";
Nekem új volt...
 
1

Mégsem. :_(

presidento · 2007. Jún. 4. (H), 18.07
Jó nagy hülyeséget írtam, annyira megörültem... :_( De mégsem tudja.
Kár, hogy nem lehet témát törölni.
2

list()

Fraki · 2007. Jún. 4. (H), 18.08

list($adat) = bonyolultSzamitas($forras);
http://hu.php.net/list
3

igaz, asszociativ tombokre ez se jo

Fraki · 2007. Jún. 4. (H), 18.10
igaz, asszociativ tombokre ez se jo, illetve a php doc list oldalán vannak tűrhető workaroundok.
5

függvény

Fraki · 2007. Jún. 4. (H), 18.16
Illetve lehet rá írni függvényt:

$value = getfield(array(), 'key');
4

fontosAdat

vbence · 2007. Jún. 4. (H), 18.11
Ezzel megkapod az eredmény egy véletlen tagját. (Semmi nem garantálja, hogy a 'fontosAdat' az első helyen van.)
6

ojjektum

breakline · 2007. Jún. 5. (K), 00.57
Szia

lehet nem új, de gondolom valami adatbázis lekérdezés eredménye lenne az asszociatív tömb, minden egyéb esetben jobb objektumokat használni, én pl. ezt csinálnám (plusz mysql_fetch_object()-el az adatbázis lekérdezésekhez is jo ofkorsz):

class result {} //üres osztály
function valamiFuggveny($valami) {
	$result = new result;
	$result -> fontosAdat = strlen($valami);
	return $result;
}
$adat = valamiFuggveny("szoveg")->fontosAdat;
üdv
BL
7

Új volt…

presidento · 2007. Jún. 11. (H), 22.05
…köszönöm!
8

ovatosan

breakline · 2007. Jún. 11. (H), 22.12
azért vigyázz vele, mert én sajnos éles szervereken ezzel problémákba ütközöm, mert az egysoros megoldás php 4 bizonyos verzióiban nincs is benne, lehet csak 5-től, akkor ehelyett:

$adat = valamiFuggveny("szoveg")->fontosAdat;
ezt lehet használni (ami két sor,de azért így is hasznos):

$temp = valamiFuggveny("szoveg");
$adat = $temp -> fontosAdat;
üdv
BL