Portál AbcLinuxu, 10. května 2025 11:04
$array = array(11 => 'ahoj', 12 => 'pa', 15 => 'nazdar'); function retNum($n, $array) { return $array[$n]; } echo retNum(11, $array);ale potřeboval bych poradit, jak opravit kód abych nemusel použít pole $array u volané funkce retNum(), abych volal funkci jen třeba echo retNum(11). poradí někdo? Díky
Řešení dotazu:
class Num { private $array = array( 11 => 'ahoj', 12 => 'pa', 15 => 'nazdar' ); public function ret($n) { return static::$array[$n]; } } // někde na začátku programu $num = new Num; // a potom echo $num->ret(11);
class Num { private $array = array( 11 => 'ahoj', 12 => 'pa', 15 => 'nazdar' ); public function ret($n) { return $this->array[$n]; } }Druhá možnost je použít static v definici pole, aby bylo v paměti jen jednou (pokud je velké a neměnné) a pak ta původní verze je správně.
Použít function handling functions and vytvořit si funkci s jedním argumentem už fixním?A nějaká ukázka pro pochopení? Díky
function retNum($n, $array) { return $array[$n]; } $retNum2 = function($n) { return retNum($n, array(11 => 'ahoj', 12 => 'pa', 15 => 'nazdar')); }; echo $retNum2(11);
class NejakaBlbost { private $pole1 = array(32, 71, 66, 50, 37); private $ble = 7; public function nejakaMetoda($n) { $a = 1 + $this->ble % 33; $this->ble *= $this->ble; return chr($this->pole1[$a >> $n] + $a); } } $x = new NejakaBlbost; echo $x->nejakaMetoda(3); echo $x->nejakaMetoda(3); echo $x->nejakaMetoda(3); echo $x->nejakaMetoda(3);A hádej, co to vypíše. Nápověda: nebudou to čtyři stejná čísla.
<?php function retNum($n) { static $array = array(11 => 'ahoj', 12 => 'pa', 15 => 'nazdar'); return $array[$n]; } echo retNum(11);
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.