W3docs

Comprendere le Funzioni Matematiche di PHP

Guida alle funzioni matematiche PHP: arrotondamento, potenze, radici, min/max, trigonometria, logaritmi, numeri casuali e costanti predefinite.

PHP include un ampio insieme di funzioni matematiche predefinite che consentono di eseguire calcoli oltre a quanto possono fare da soli i operatori aritmetici di base (+ - * / %). Con esse è possibile arrotondare valori in virgola mobile, calcolare radici quadrate e potenze, lavorare con trigonometria e logaritmi, e generare numeri casuali — il tutto senza installare alcuna estensione. Ogni funzione mostrata qui fa parte del core di PHP.

Questo capitolo illustra le funzioni più utilizzate, raggruppate per funzionalità, con una breve nota su quando ciascuna è utile. Se sei alle prime armi con i valori numerici in PHP, leggi prima PHP Numbers.

Operatori vs. Funzioni

Per l'aritmetica ordinaria, usa gli operatori — sono più brevi e facili da leggere:

<?php
echo 7 + 3;   // 10
echo 7 % 3;   // 1  (modulo: remainder)
echo 2 ** 10; // 1024 (exponentiation operator)
?>

Ricorri alle funzioni matematiche quando hai bisogno di qualcosa che gli operatori non possono esprimere da soli — arrotondamento, radici quadrate, valori assoluti, trigonometria, logaritmi o numeri casuali. L'operatore ** e pow() svolgono lo stesso compito; il resto di questa pagina tratta i casi che non hanno un equivalente con operatore.

Funzioni di Arrotondamento

Una delle operazioni matematiche più comuni in PHP è l'arrotondamento dei numeri a uno specifico numero di decimali. La funzione round può essere usata per arrotondare un numero all'intero più vicino o a un numero specifico di cifre decimali. Ad esempio, il codice seguente arrotonderà il numero 3.14159 a due cifre decimali:

Esempio della funzione round di PHP

php— editable, runs on the server

Oltre alla funzione round, PHP fornisce anche le funzioni ceil e floor, che possono essere usate per arrotondare un numero verso l'alto o verso il basso all'intero più vicino. Ad esempio:

Esempi delle funzioni ceil e floor di PHP

php— editable, runs on the server

Quando usare quale: round() arrotonda al valore più vicino (e accetta una precisione), ceil() arrotonda sempre verso l'alto, e floor() arrotonda sempre verso il basso. Nota che ceil() e floor() restituiscono un float, quindi ceil(3.1) è 4.0, non l'intero 4. Un errore comune è che round() usa "arrotondamento a metà lontano da zero" per impostazione predefinita, quindi round(2.5) è 3 e round(-2.5) è -3.

Potenze e Radici

Usa pow() (o l'operatore **) per elevare un numero a una potenza, e sqrt() per calcolare una radice quadrata. abs() restituisce il valore assoluto (non negativo), utile quando si considera solo la magnitudine — ad esempio, la distanza tra due numeri.

Esempio PHP di pow, sqrt e abs

<?php

echo pow(2, 8) . "\n";  // 256
echo 2 ** 8 . "\n";     // 256 (operator form)
echo sqrt(144) . "\n";  // 12
echo abs(-17) . "\n";   // 17

// Distance between two numbers, regardless of order:
echo abs(3 - 10) . "\n"; // 7
?>

Min, Max e Somme

min() e max() restituiscono il più piccolo e il più grande tra i propri argomenti. È possibile passare loro un elenco di valori o un singolo array. array_sum() e array_product() sommano o moltiplicano tutti gli elementi di un array.

Esempio PHP di min, max e array_sum

<?php

echo min(4, 2, 9, 1) . "\n";          // 1
echo max([4, 2, 9, 1]) . "\n";        // 9 (works on an array too)

$prices = [19.99, 5.50, 12.00];
echo array_sum($prices) . "\n";       // 37.49
echo array_product([2, 3, 4]) . "\n"; // 24
?>

Funzioni Trigonometriche

PHP fornisce diverse funzioni trigonometriche, tra cui sin, cos e tan, che possono essere usate per calcolare rispettivamente il seno, il coseno e la tangente di un angolo. Queste funzioni sono utili per eseguire calcoli relativi ad angoli e distanze nello spazio 2D e 3D. Nota che queste funzioni si aspettano angoli in radianti, non in gradi. Usa deg2rad() per convertire i gradi in radianti prima di passarli a queste funzioni.

Esempio PHP di sin, cos e tan

<?php

$angle = deg2rad(30);

$sine = sin($angle);
echo $sine . "\n";
// Output: 0.5

$cosine = cos($angle);
echo $cosine . "\n";
// Output: 0.866025

$tangent = tan($angle);
echo $tangent . "\n";
// Output: 0.577350

?>

Funzioni Logaritmiche

PHP fornisce diverse funzioni logaritmiche, tra cui log, log10 e exp, che possono essere usate per eseguire varie operazioni logaritmiche. La funzione log calcola il logaritmo naturale di un numero, mentre la funzione log10 calcola il logaritmo in base 10 di un numero. La funzione exp calcola il valore esponenziale di un numero.

Esempio delle funzioni log, log10 e exp di PHP

<?php

$num = 10;

$natural_log = log($num);
echo $natural_log . "\n";
// Output: 2.30259

$log10 = log10($num);
echo $log10 . "\n";
// Output: 1

$exponential = exp($num);
echo $exponential . "\n";
// Output: 22026.465
?>

Funzioni Varie

Oltre alle funzioni discusse sopra, PHP offre diverse altre funzioni matematiche utilizzabili per vari scopi. Ad esempio, la funzione abs può essere usata per calcolare il valore assoluto di un numero, mentre la funzione pow può essere usata per calcolare la potenza di un numero.

Esempio delle funzioni abs e pow di PHP

php— editable, runs on the server

Per la divisione intera, usa intdiv(), e per il resto in virgola mobile, usa fmod():

<?php
echo intdiv(17, 5) . "\n"; // 3  (integer division)
echo fmod(17.5, 5) . "\n"; // 2.5 (float remainder; % only works on ints)
?>

Numeri Casuali

Per generare numeri casuali, usa rand() o mt_rand() per scopi generali, e random_int() quando il valore deve essere crittograficamente sicuro (password, token, codici OTP). Tutti e tre accettano un minimo e un massimo inclusivi.

Esempio PHP di numeri casuali

<?php

$dice = rand(1, 6);          // a number from 1 to 6
echo $dice . "\n";

$secure = random_int(1, 100); // cryptographically secure 1–100
echo $secure . "\n";
?>

Poiché l'output cambia ad ogni esecuzione, i numeri esatti sopra saranno diversi ogni volta. Usa random_int() ogni volta che la casualità è sensibile alla sicurezza — rand() è prevedibile e non deve essere usato per nulla di segreto.

Costanti Matematiche

PHP definisce diverse costanti predefinite per valori comuni, così non devi codificare approssimazioni a mano:

<?php
echo M_PI . "\n";   // 3.1415926535898  (π)
echo M_E . "\n";    // 2.718281828459   (Euler's number)
echo M_SQRT2 . "\n";// 1.4142135623731  (√2)

// Area of a circle with radius 5:
echo M_PI * pow(5, 2) . "\n"; // 78.539816339745
?>

La costante PHP_INT_MAX indica il numero intero più grande che la tua piattaforma può contenere; superarlo e PHP converte silenziosamente il risultato in un float. Consulta PHP Numbers e PHP Data Types per ulteriori informazioni sui limiti di interi e float.

Conclusione

Il toolkit matematico di PHP copre tutto, dal semplice arrotondamento alla trigonometria, ai logaritmi e ai numeri casuali sicuri — tutto integrato nel linguaggio senza alcuna estensione richiesta. Come regola generale: usa gli operatori per l'aritmetica semplice, round/ceil/floor per controllare la precisione, min/max/array_sum per riassumere le collezioni, e random_int() ogni volta che la casualità deve essere imprevedibile. Per mantenere la formattazione dei numeri per la visualizzazione separata dal calcolo, consulta number_format.

Pratica

Pratica
In PHP, quali funzioni vengono usate per trovare i valori minimo e massimo tra i numeri forniti?
In PHP, quali funzioni vengono usate per trovare i valori minimo e massimo tra i numeri forniti?
Was this page helpful?