PHP-ban, hogy lehet a funkcióban kihagyni paramétereket?
Pl. van egy funkció
function teszt($a = 1, $b = 2){
echo 'a = '.$a.' b = '.$b;
}
Hogy lehet az első paraméterét kihagyni a funkciónak az $a változót és csak a $b-re megadni értéket?
Egyszer mintha hasonlót láttam volna valahol, hogy így oldják meg:
teszt($b = 123);
de ez ugyanúgy az első paraméter értékét állítja.
teszt(123);
vagy
$b = 123;
teszt($b);
#1 vagyok.
Amit előbb írtam az az első paramétert állítja.
Amit szeretnél az ez:
function teszt($a = null, $b = null){
if($a === null){$a = 1;}
if($b === null){$b = 2;}
echo 'a = '.$a.' b = '.$b;
}
teszt(null, 24);
teszt(64);
A jobb megoldás, ha a paramétert amit ki szeretnél hagyni a függyvény utolsó elemének választod.
Szerintem építsd fel úgy hogy objektumot esetleg(tömböt) adsz át.
És azt dolgozod fel, a programba...
function teszt($data) {
if(!isSet($data->a)) { $data->a = 1; }
if(!isSet($data->b)) { $data->b = 2; }
echo 'a = '.$data->a.' b = '.$data->b;
}
teszt((object)['b' => 3]);
print("\r\n\r\nMásik mód:\r\n");
$data = new class{};
$data->b = 4;
teszt($data);
pl.: [link]
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!