Portál AbcLinuxu, 9. května 2025 23:38

Dotaz: Předání parametru ve volané funkci

23.9.2011 17:20 Dědek
Předání parametru ve volané funkci
Přečteno: 228×
Odpovědět | Admin
Ahoj,

zavolám funkci
echo moje_funkce();
ale potřebuji předat parametry
$a = 'ref';
$b = 0, 2, 8, 9, 4, 8';
$c = 'li';

moje_funkce($a, $b, $c)
je to tak dobře?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.9.2011 17:23 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Předání parametru ve volané funkci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jazyk? ... není.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
23.9.2011 17:35 Dědek
Rozbalit Rozbalit vše Re: Předání parametru ve volané funkci
EH, omluva ;)

jedná se o PHP
23.9.2011 17:54 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Předání parametru ve volané funkci
To jsou dost základní věci, které se píšou v každé knize na začátku…
Příklad bez ošetření html výstupu:
<?php
function moje_funkce($ap, $bp, $cp){
  return "<br />\n 1st param: $ap<br />\n 2nd param: $bp<br />\n 3rd param: $cp<br />\n";
}

$a = 'ref';
$b = '0, 2, 8, 9, 4, 8';
$c = 'li';

echo moje_funkce($a, $b, $c);
PS: znaky jako ' či ; jsou docela důležité :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
23.9.2011 17:50 Kit
Rozbalit Rozbalit vše Re: Předání parametru ve volané funkci
Odpovědět | | Sbalit | Link | Blokovat | Admin
  1. Chybí tam jeden apostrof
  2. $b by asi bylo lepší předávat jako pole
  3. něco mi říká, že místo moje_funkce() by se možná dala využít nějaká systémová funkce
23.9.2011 17:51 Dědek
Rozbalit Rozbalit vše Re: Předání parametru ve volané funkci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná bude ještěl lepší napsat co přesně potřebuji..

mám funkci kterou chci zavolat a vypsat jen něteré řádky z pole, ale vůbec to neposlouchá :(
 $a = 'li';
 $b = '0, 1, 3, 5';

 success($a, $b);


 function success($a, $b) {

 $success = array();

 $success['li'][0] = '000000000000';
 $success['li'][1] = '111111111111';
 $success['li'][2] = '222222222222';
 $success['li'][3] = '333333333333';
 $success['li'][4] = '444444444444';

 $success['td'][0] = 'aaaaaaaaaaaa';
 $success['td'][1] = 'bbbbbbbbbbbb';
 $success['td'][2] = 'cccccccccccc';
 $success['td'][3] = 'dddddddddddd';
 $success['td'][4] = 'eeeeeeeeeeee';


 foreach ($success[$a][$b] as $text) {

 echo $text;

 }

 }
děkuji za pomoc
23.9.2011 18:03 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Předání parametru ve volané funkci
No nevím čeho chcete docílit, možná:
<?php

function success($a, $b) {

 $success = array();

 $success['li'][0] = '000000000000';
 $success['li'][1] = '111111111111';
 $success['li'][2] = '222222222222';
 $success['li'][3] = '333333333333';
 $success['li'][4] = '444444444444';

 $success['td'][0] = 'aaaaaaaaaaaa';
 $success['td'][1] = 'bbbbbbbbbbbb';
 $success['td'][2] = 'cccccccccccc';
 $success['td'][3] = 'dddddddddddd';
 $success['td'][4] = 'eeeeeeeeeeee';

 
 foreach ($b as $id)
 {
   if(isset($success[$a][$id]))
     echo $success[$a][$id];
 }   
}

$a = 'li';
$b = Array(0, 1, 3, 5);
success($a, $b);
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
23.9.2011 18:32 Dědek
Rozbalit Rozbalit vše Re: Předání parametru ve volané funkci
Tak to je přesně ono;)

moc děkuji za pomoc.

btw: když nastavím všechny ty proměnné array $success['li'][0] = '000000000000'; mimo tu funkci tak to nefunguje, což je jasné, ale jde to nějak ošetřit aby to fungovalo i pokud to bude mimo tu funkci?

Děkuji
23.9.2011 19:56 Kit
Rozbalit Rozbalit vše Re: Předání parametru ve volané funkci
Nejlépe to půjde asi tak, že z toho všeho uděláš objekt.
23.9.2011 20:20 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Předání parametru ve volané funkci
Takto nepěkně:
<?php
$success = array();

function success($a, $b) {
  global $success;
  foreach ($b as $id)
  {
    if(isset($success[$a][$id]))
      echo $success[$a][$id];
  }
}

$success['li'][0] = '000000000000';
$success['li'][1] = '111111111111';
$success['li'][2] = '222222222222';
$success['li'][3] = '333333333333';
$success['li'][4] = '444444444444';

$success['td'][0] = 'aaaaaaaaaaaa';
$success['td'][1] = 'bbbbbbbbbbbb';
$success['td'][2] = 'cccccccccccc';
$success['td'][3] = 'dddddddddddd';
$success['td'][4] = 'eeeeeeeeeeee';

$a = 'li';
$b = Array(0, 1, 3, 5);
success($a, $b);
Takto tak nějak obecně neutrálně: (pozor funkce success může modifikovat pole $success)
<?php
function success($a, $b, &$ar) {
  foreach ($b as $id)
  {
    if(isset($ar[$a][$id]))
      echo $ar[$a][$id];
  }
}

$success = Array();
$success['li'][0] = '000000000000';
$success['li'][1] = '111111111111';
$success['li'][2] = '222222222222';
$success['li'][3] = '333333333333';
$success['li'][4] = '444444444444';

$success['td'][0] = 'aaaaaaaaaaaa';
$success['td'][1] = 'bbbbbbbbbbbb';
$success['td'][2] = 'cccccccccccc';
$success['td'][3] = 'dddddddddddd';
$success['td'][4] = 'eeeeeeeeeeee';

$a = 'li';
$b = Array(0, 1, 3, 5);
success($a, $b, $success);
Pak by to šlo nejlépe objektově, ale vzhledem k ukázaným kódům to raději nebudu přehánět. :-)
Smysl kódu nezkoumám :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.