Learn Code
Ti piace programmare? Segui il mio canale su YouTube.
Visita il canale
Qualche idea?
Ti piacerebbe iniziare una collaborazione con me? Nessun problema, offrimi una colazione abbondante e ne parliamo
info@gianfranco-percopo.com
Ritorna alla lista completa degli articoli
Grazie al namespace in PHP possiamo organizzare meglio il nostro codice e renderlo mantenibile nel tempo. Altra caratteristica straordinaria è che non dobbiamo preoccuparci dell'omonimia tra classi o funzioni. Ad esempio se utilizziamo una funzione che ha lo stesso nome della funzione contenuta nel namespace il codice funzionerà regolarmente. Per questo esercizio immaginiamo di voler costruire delle funzioni matematiche che ci saranno utili anche per altri progetti.
start.php
<?php include_once('namespace/namespace.math.start.php'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>namespace math</title>
</head>
<body>
<?php
function stampa_divisori($numero)
{
$res = math\divisori($numero);
for ($c = 1; $c <= $numero; $c++) {
printf("%s : %s = %s - Resto: %s <br>", $numero, $c, $numero / $c, $numero % $c);
}
printf("Divisori di %s: [%s]", $numero, implode(" , ", $res));
}
function stampa_mcm($n1, $n2)
{
$res = math\mcm($n1, $n2);
printf("m.c.m di %s è %s: %s", $n1, $n2, $res);
}
function stampa_mcd($n1, $n2)
{
$res = math\mcd($n1, $n2);
printf("M.C.D di %s è %s: %s", $n1, $n2, $res);
}
function stampa_decimale($n)
{
$res = math\separa_decimali($n);
printf("Il decimale di %s è %s", $n, $res);
}
function stampa_somma($arr)
{
$res = math\somma($arr);
printf("La somma dei numeri [%s] è uguale a %s", implode(" + ", $arr), $res);
}
function stampa_moltiplicazione($arr)
{
$res = math\prodotto($arr);
printf("Il prodotto dei numeri [%s] è uguale a %s", implode(" x ", $arr), $res);
}
function stampa_media($arr)
{
$res = math\media($arr);
printf("La media dei numeri (%s) / %s è uguale a %s", implode(" + ", $arr), count($arr), $res);
}
$numeri = [10, 5, 4, 7, 1];
stampa_divisori(12);
echo "<br><br>";
stampa_divisori(12.25);
echo "<br><br>";
stampa_mcm(50, 20);
echo "<br><br>";
stampa_mcd(50, 20);
echo "<br><br>";
stampa_decimale(589.45);
echo "<br><br>";
stampa_somma($numeri);
echo "<br><br>";
stampa_moltiplicazione($numeri);
echo "<br><br>";
stampa_media($numeri);
?>
</body>
</html>
Il file da completare sarà solo namespace.math.start.php in quanto il file start.php si occupa di formattare i dati e di includere il namespace. Il file start.php visualizza il risultato di diverse operazioni matematiche richiamando le funzioni specificate nel namespace il cui nome è math:
namespace.math.start.php
<?php
namespace math;
function divisori($numero)
{
// da completare
return array();
}
function mcm($n1, $n2)
{
// da completare
return 0;
}
function mcd($n1, $n2)
{
// da completare
return 0;
}
function separa_decimali($num)
{
// da completare
return 0.00;
}
function somma($numeri)
{
// da completare
return 0;
}
function prodotto($numeri)
{
// da completare
return 0;
}
function media($numeri)
{
// da completare
return 0;
}
Ogni funzione dovrà essere completata scrivendo il codice necessario.
Note:
Dovrete concentrarvi solo nel file namespace.math.start.php. Una volta completato avrete un output simile al seguente:
Provate a farlo da soli senza vedere la soluzione. Buon lavoro e soprattutto divertitevi :)
E' disponibile del contenuto riservato.
Devi essere registrato per poterlo visionare