Portál AbcLinuxu, 13. listopadu 2025 19:35
$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.