První prvek v poli – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

První prvek v poli – PHP – Fórum – Programujte.comPrvní prvek v poli – PHP – Fórum – Programujte.com

 

MajuJoe0
Duch
14. 8. 2013   #1
-
0
-

Ahoj, potřeboval bych poradit s maličkostí u php. V kódu mám funkci, která tahá data z databáze a vrací dvourozměrné pole, z kterého jednou za čas potřebuji pouze první prvek. Na lokálu používám něco takového:

<?php
function vrat_pole() {
	return array(array('xx', 'yy'), array('xx2', 'yy2'));
}

$pole = vrat_pole()[0];

?>

Na severu to ale nefrčí (konkrétně chyba: "syntax error, unexpected '['"). Na lokálu používám PHP 5.4.4 a na serveru PHP 5.3.10. Je možné, že chybu způsobují rozdílné verze nebo např. něco v konfiguraci php?
Popřípadě jak podobný problém řešíte vy?

Díky, Josef Doležal

Nahlásit jako SPAM
IP: 81.90.252.–
KIIV
~ Moderátor
+43
God of flame
14. 8. 2013   #2
-
0
-

funguje napriklad:

$pole = vrat_pole();
$pole = $pole[0];

ale kdyz uz bys to pouzival casteji, tak je lepsi ulozit si to pole a pouzivat to...

tendle "Java" style pristup jako:

.... = vrat_pole()[0];

o pul radku dal  ... = vrat_pole()[1];

na dalsim to samy a pak jeste 100x je vcelku plejtvani pameti a podobne (furt dokola vyrabet to pole, pak pouzit cast a zbytek zahodit)...

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
MajuJoe0
Duch
14. 8. 2013   #3
-
0
-

#2 KIIV
Jasný, tenhle postup znám, ale přijde mi takový zbytečný si ukládat celý pole, když potřebuju jen jeden prvek. Funkci, kterou jsem popsal volám z controlleru pokaždé odjinud, někdy posílám do view všechny prvky a někdy jen jeden. Nejsem blázen abych na pěti řádcích volal pětkrát stejnou funkci :-)

To co jsem psal mi přišlo takový elegantní a jednoduchý, na druhou stranu jsem se s tím nikdy nesetkal.

Nahlásit jako SPAM
IP: 81.90.252.–
KIIV
~ Moderátor
+43
God of flame
14. 8. 2013   #4
-
0
-

nebo si rovnou u ty funkce predavat cislo prvku a to vratit primo ... (pokud to samozrejme jde)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
peter
~ Anonymní uživatel
4016 příspěvků
15. 8. 2013   #5
-
0
-

Mohlo by to fungovat takto, ale tyhle experimenty nemam vyzkousene.
$pole = {vrat_pole()}[0];

Normalne bych to psal takto:
$pole = array(array('xx', 'yy'), array('xx2', 'yy2'));
$pole = $pole[0];

Nejspis jde o nejaky pokus se vyhnout globalnim promenny, nebo nevim, oc ti jde, porad vytvaret pole a pak ho zas rusit. Tak jako muze zustat v pameti a zrusit ho az na konci, ne?

Nahlásit jako SPAM
IP: 193.84.207.–
MajuJoe0
Duch
15. 8. 2013   #6
-
0
-

Vložit parametr do funkce mě taky napadlo, ale pořád mi to přijde hůř čitelné než to co jsem napsal :-) Každopádně to tak asi vyřeším..

Nejde o globální proměnné, jde o to, že se mi zdá zbytečné ukládat do paměti vícerozměrné pole, z kterého použiju jeden prvek. Někdy sice používám celé pole, ale je to na jiné stránce, kde funkci volám znovu tak jako tak.. Funkci, kterou jsem uvedl opravdu volám na danné stránce pouze jednou, nevytvářím tedy stejné pole několikrát, abych z něho pokaždé dostal jiný prvek.

Nahlásit jako SPAM
IP: 81.90.252.–
yetty
~ Redaktor
+5
Super člen
15. 8. 2013   #7
-
0
-

#1 MajuJoe

Na severu to ale nefrčí (konkrétně chyba: "syntax error, unexpected '['"). Na lokálu používám PHP 5.4.4 a na serveru PHP 5.3.10. Je možné, že chybu způsobují rozdílné verze nebo např. něco v konfiguraci php?

Ano, je to vlastnost, která byla přidána v PHP 5.4.

http://www.php.net/manual/en/migration54.new-features.php

Nahlásit jako SPAM
IP: 46.23.51.–
MajuJoe0
Duch
15. 8. 2013   #8
-
0
-

#7 yetty
Díky, to jsem potřeboval vědět :-)

Nahlásit jako SPAM
IP: 81.90.252.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 43 hostů

Podobná vlákna

Jak smazat prvek v poli — založil Rygy

Aktivni prvek po kliknuti — založil Mirek

Prvek WebBrosver ve WPF — založil plasmo

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý