Named Arguments - OOP in PHP
Indice
In PHP 8, i named arguments (argomenti nominati) sono un tipo di parametro di funzione che consentono di specificare i valori degli argomenti di una funzione utilizzando il loro nome invece del loro ordine.
Nell'utilizzo standard delle funzioni, gli argomenti sono specificati nell'ordine in cui sono definiti nella firma della funzione. Tuttavia, quando si utilizzano named arguments, gli argomenti possono essere specificati in qualsiasi ordine, purché vengano identificati dal loro nome.
Sintassi utilizzando i named arguments
class MyClass {
private $arg1;
private $arg2;
private $arg3;
public function __construct(string $arg1, int $arg2, bool $arg3) {
$this->arg1 = $arg1;
$this->arg2 = $arg2;
$this->arg3 = $arg3;
}
}
// Utilizzo della classe con named arguments
$obj = new MyClass(arg1: 'valore1', arg3: true, arg2: 123);
Esempio utilizzando il metodo construct property promotion
/lib/automobile.php
<?php
class Automobile
{
function __construct(
public string $marca,
public string $modello,
public string $tipologia,
public int|float $prezzo = 0
){
}
public function riepilogo(){
return "Marca: $this->marca <br>
Modello: $this->modello <br>
Tipologia: $this->tipologia <br>
Prezzo: $this->prezzo <br><br>";
}
}
?>
/named-arguments.php
<?php
declare(strict_types=1);
require __DIR__ . '/lib/automobile.php';
/* In PHP8 grazie ai named arguments (specificando il nome dell'argomento nella creazione di un istanza)
possiamo scrivere i valori degli argomenti non tenendo conto della posizione. */
$citroenC4 = new Automobile(marca: "Citroen", modello: "C4 Cactus" , tipologia: "CrossOver", prezzo: 25000);
$panda4x4 = new Automobile(prezzo: 15000,tipologia: "Fuoristrada",modello: "Panda 4x4",marca: "Fiat");
$audiR8 = new Automobile(modello:"R8",marca:"Audi",prezzo: 105000,tipologia:"Coupè");
echo $citroenC4->riepilogo();
echo $panda4x4->riepilogo();
echo $audiR8->riepilogo();
?>