|
PHP PHP aplikacije, Smarty, PEAR |
![]() |
|
Alati teme | Način prikaza |
![]() |
#1 |
profesionalac
Qualified
|
![]() Pozdrav, trebala bi mi mala pomoc, neki hint, bilo sta...
![]() Recimo da imam niz: Kôd:
$car = array('opel', 'black', 2008, 15000); Kôd:
function mycar($model, $color, $year, $price) { ... } ![]() Hvala!
__________________
www.salebab.net |
![]() |
![]() |
![]() |
#2 |
Vladan Zirojević
Grand Master
|
![]() U tvom slucaju, pozivas f-ju:
mycar($car[0], $car[1], $car[2], $car[3]); ili preneses cijeli niz kao mycar($car); pa na nivou funkcije odredjujes sta ces raditi sa clanovima niza. Inace, u ovakvom slucaju bi bilo bolje niz definisati kao asocijativni, kao: $car = array('model'=>'opel', 'color'=>'black', 'year'=>2008, 'price'=>15000); da se za par mjeseci ne bi pitao sta ono bjese $car[3]. Elementima ovakvog asocijativnog niz kasnije pristupas sa $car['model'] i slicno. Predlazem ti da procitas i isprobas: http://oreilly.com/catalog/progphp/chapter/ch05.html |
![]() |
![]() |
![]() |
#3 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Off Topic: Mali, ničim izazvani Ruby showoff: Kôd:
>> car = ['opel', 'black', 2008, 15000] => ["opel", "black", 2008, 15000] >> def mycar model, color, year, price >> puts "Model: #{model}, color: #{color}, year: #{year}, price: #{price}" >> end => nil >> mycar *car Model: opel, color: black, year: 2008, price: 15000 => nil |
![]() |
![]() |
![]() |
#4 |
Goran Pilipović
Sir Write-a-Lot
|
![]() Preneses ceo niz function mycar($car) pa ako ti bas smeta da radis sa elementima niza, onda uradis PHP manual: extract, ali to zahteva da imas asocijativni niz, kao ovo sto je zira rekao.
Na primer preneses: PHP kôd:
PHP kôd:
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
![]() |
![]() |
![]() |
#5 |
profesionalac
Qualified
|
![]() Uf, uf, zaboravio sam samo da napisem da niz nema uvek isti broj elemenata. Znaci kada ima jedan element funkciji se prosledjuje samo jedan argument, kada ih ima 10, prosledjuje se 10 argumenata...
Dakle, trebam da napravim takav algoritam, da koliko god elemnata ima niz ja trebam da ih pretvorim u argumente funkcije. Takodje, ne odgovara mi da prosledim ceo niz kao jedan argument. Takvu neku foru sam video kod CodeIgnitera kada segmente URI-a prosledjuje metodi kao zasebne argumente... Nadam se da je sada jasnije sta zelim? ![]()
__________________
www.salebab.net Poslednja izmena od salebab : 14. 10. 2008. u 23:04. |
![]() |
![]() |
![]() |
#6 |
Goran Pilipović
Sir Write-a-Lot
|
![]() Ako je vec tako, da li moze da se zna zasto ti ne odgovara da prosledis ceo niz?
To je verovatno iz nekog formulara, POST ili GET, onda nemoj da prosledjujes nista nego citaj iz POST ili GET direktno. A moze, naravno da moze, samo gubi se bilo kakav smisao kada funciji prosledjujes 10 argumenata.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
![]() |
![]() |
![]() |
#7 |
profesionalac
Qualified
|
![]() Ne odgovara mi zato sto korisnik kreira taj niz, a nije fiksan broj elemenata. Suvise mi je komplikovano da u metodi proveravam koliko ima elemata, pa onda switch... Mnogo mi jednostavnije da imam default vrednosti, npr: function myfunc($arg1 = "nesto", $arg2 = "nesto2" ...); a da niz pretvorim u argumente.
Recimo ovako neki pseudo kod myfunc( foreach($niz as $value): $value,)) ![]()
__________________
www.salebab.net Poslednja izmena od salebab : 14. 10. 2008. u 23:47. |
![]() |
![]() |
![]() |
#8 |
majstor
Wrote a book
|
![]() A kako ces utvrditi koliko ti je elemena proslijedjeno? Array ima length i na osnovu toga kreiras petlju i shibas po citavom nizu.
Ne znam da li PHP ima mogucnost definisanja neodredjenog broja argumenata kod definicije funkcije. Mozes definisati 100 argumenata i odmah im postaviti default vrijednost i proglasiti ih za ne obaveznim da ne bi dobio greske prilikom izvodjenja. |
![]() |
![]() |
![]() |
#9 |
profesionalac
Qualified
|
![]() Pa moze se utvrditi koliko joj je prosledjeno sa func_num_args(), ali meni to ne treba. Cak me i ne zanima koliko je prosledjeno. Npr jedna metoda prihvata recimo 3 argumenta, ako je prosledjeno 2, super, ja imam i treci koji je default. Ako je prosledjeno 10, tih 7 argumenata ce biti ignorisano
![]() ![]()
__________________
www.salebab.net |
![]() |
![]() |
![]() |
#10 |
Ivan Dilber
Sir Write-a-Lot
|
![]() Ako sam razumeo pitanje:
a) f-ju mozes pozvati sa proizvoljnim brojem argumenata (iz niza) pomocu call_user_func_array() b) unutar funkcije mozes da primis te parametre pomocu func_get_args() ja slicnu foru koristim za wrapper za mysqli funkcije u novom projektu, i zacudo uopste nije mnogo sporije od klasicnog koda..
__________________
Leadership is the art of getting people to want to do what you know must be done. Poslednja izmena od ivanhoe : 15. 10. 2008. u 02:39. |
![]() |
![]() |
"Hvala" ivanhoe za poruku: |
![]() |
Alati teme | |
Način prikaza | |
|
|
![]() |
||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
php f-ja za merge 2 niza | ivanhoe | PHP | 5 | 02. 11. 2009. 21:06 |
relacija izmedju elemenata dva niza | gope | Sva početnička pitanja | 3 | 22. 04. 2009. 17:00 |
Elegantnije filtriranje niza | Pedja | PHP | 4 | 20. 07. 2007. 23:02 |
vracanje niza iz funkcije | bojan_bozovic | PHP | 4 | 06. 02. 2006. 10:23 |