La matematica di base viene utilizzata molto durante la programmazione. Abbiamo bisogno di confrontare, aggiungere, moltiplicare, sottrarre e dividere spesso valori diversi durante la scrittura del codice.
A volte, la matematica richiesta in un programma può essere più coinvolta. Potrebbe essere necessario lavorare con funzioni logaritmiche, trigonometriche o esponenziali. In questo tutorial, discuterò su come utilizzare ognuna di queste funzioni in PHP, con esempi.
Questo tutorial ti introdurrà alle funzioni matematiche integrate in PHP per eseguire calcoli di trigonometria, esponenziazione e logaritmo. Vedremo anche l'arrotondamento e la generazione di numeri casuali.
È possibile calcolare il valore di seno, cos e tangente di diversi angoli dati in radianti usando sin ($ angolo)
, cos ($ angolo)
, e tan ($ angolo)
. Tornano tutti galleggiante
valori e la misura dell'angolo passata a loro è in radianti.
Questo significa che quando si calcola semplicemente tan (45)
, non otterrai 1 come output, perché in realtà calcolerai il valore della tangente a 45 radianti, che è di circa 2.578 gradi. Fortunatamente, PHP ha due funzioni molto utili per convertire i radianti in gradi e viceversa. Queste funzioni sono rad2deg ()
e deg2rad ()
. Quindi, se in realtà vuoi calcolare il valore della tangente di 45 gradi, dovrai scrivere tan (deg2rad (45))
.
È interessante notare che non esiste una funzione PHP diretta per calcolare il valore di cosec ()
, sec ()
, o culla()
. Tuttavia, questi valori sono solo reciproci di peccato()
, cos ()
, e tan ()
, in modo che tu possa ancora calcolare i loro valori indirettamente.
Puoi anche fare l'inverso e calcolare l'angolo con cui un angolo trigonometrico ha un valore particolare. Queste funzioni sono chiamate come in()
, acos ()
, e un'abbronzatura()
. Una cosa che devi ricordare è che i valori di sin e cos non possono mai andare oltre l'intervallo di -1 a 1 per ogni angolo. Ciò significa che come in()
e acos ()
può accettare solo valori nell'intervallo da -1 a 1 come argomenti validi. Un valore al di fuori di questo intervallo ti darà NaN.
La trigonometria ha un sacco di applicazioni come determinare la traiettoria di un proiettile o le altezze e le distanze di oggetti diversi, quindi avere accesso a queste funzioni è sicuramente utile se stai scrivendo un codice che simula queste situazioni.
Queste funzioni sono anche molto utili quando si desidera disegnare elementi diversi usando valori radiali e angolari. Diciamo che vuoi disegnare un motivo di cerchi attorno a un cerchio più grande a una distanza uniforme. Se hai letto il tutorial PHP GD Shapes su Envato Tuts +, probabilmente ricorderai che disegnare qualsiasi forma richiede di passare le coordinate sotto forma di coordinate x, y, ma disegnare schemi circolari è più facile con le coordinate polari.
L'uso di queste funzioni trigonometriche in questo caso ti aiuterà a disegnare le figure desiderate usando peccato()
e cos ()
convertire le coordinate polari in forma cartesiana. Ecco un esempio:
L'immagine seguente mostra il risultato finale del codice PHP sopra.
PHP ha anche alcune funzioni esponenziali e logaritmiche. Il exp ($ value)
la funzione restituirà la costante e elevato al potere del galleggiante $ value
. Allo stesso modo, è possibile calcolare il logaritmo di un dato numero su qualsiasi base utilizzando il log ($ arg, $ base)
funzione. Se la $ di base
viene omesso, il logaritmo verrà calcolato utilizzando la base naturale e. Se vuoi calcolare il logaritmo di un numero sulla base 10, puoi semplicemente usare la funzione log10 ($ arg)
.
Un'altra funzione che potresti trovare utile è pow ($ base, $ exp)
, che ritorna $ di base
elevato al potere di $ exp
. Alcuni di voi potrebbero preferire usare il **
operatore. L'espressione $ A ** $ b
darà lo stesso risultato di pow ($ a, $ b)
. Tuttavia, potresti ottenere risultati errati in determinate situazioni con $ A ** $ b
. Per esempio, -1 ** 0.5
ti darò -1, che non è corretto. Calcolo della stessa espressione usando pow (-1, 0.5)
darà il valore corretto, NaN.
Ci sono molte altre importanti funzioni matematiche pure. È possibile arrotondare le frazioni o i numeri decimali fino al numero intero più vicino utilizzando ceil (valore $ float)
funzione. Questo convertirà sia il 2.1 che il 2.9-3. Allo stesso modo, puoi arrotondare le frazioni o i numeri decimali al numero intero più vicino usando floor (float $ value)
funzione. Cambierà sia il 2.1 che il 2.9 a 2.
Queste funzioni sono utili per arrotondare facilmente i risultati di calcoli diversi. Diciamo che è necessario sapere quante persone una sala può ospitare in base alla sua area. La tua risposta finale dopo la divisione sarà probabilmente un numero decimale, ma non puoi dividere le persone in frazioni, quindi la risposta corretta sarebbe il valore di fondo del valore calcolato.
Spesso vorrai arrotondare un numero verso l'alto o verso il basso al numero intero più vicino. Ad esempio, potresti voler cambiare 2.1 a 2 ma 2.9 a 3. Questo può essere fatto facilmente usando il round ($ valore, $ precisione, $ modalità)
funzione. Il $ precisione
parametro determina il numero di posizioni decimali da arrotondare a. Il valore predefinito di 0 restituirà semplicemente numeri interi. Il terzo modalità $
parametro viene utilizzato per determinare cosa succede se il numero che si desidera arrotondare si trova esattamente nel mezzo. Puoi usarlo per specificare se 3.5 deve essere cambiato in 3 o 4.
PHP ha anche due funzioni chiamate min ($ valori)
e max ($ valori)
per aiutarti a determinare i valori più bassi e più alti in una serie o matrice di numeri. Queste funzioni possono accettare diversi tipi di parametri come due array e una stringa. Dovresti dare un'occhiata alla documentazione per vedere come sarebbero confrontati.
Puoi anche eseguire la divisione integer in PHP usando il intdiv ($ dividendo, $ divisore)
funzione. In questo caso, solo la parte integrale del quoziente viene restituita dopo una divisione. Allo stesso modo, puoi anche ottenere il resto o il modulo dopo la divisione di due argomenti usando il fmod ($ dividendo, $ divisore)
funzione. Il valore restituito sarà sempre inferiore al $ divisore
in grandezza.
Ci sono alcune altre funzioni utili come is_nan ($ value)
, is_finite ($ value)
e is_infinite ($ val)
che può essere usato per determinare se il valore è un numero e, se è un numero, se è finito o infinito. Ricorda che PHP considera infinito qualsiasi valore che è troppo grande per essere contenuto in un float. Così is_finite ()
tornerà vero
per 100 fattoriali ma falso
per 1000 fattoriale.
I numeri casuali si dimostrano abbastanza utili in un numero di situazioni. Puoi usarli per generare dati "casuali" per la tua applicazione o per generare istanze nemiche nei giochi, ecc. È molto importante ricordare che nessuna delle funzioni discusse in questa sezione genera numeri casuali crittograficamente sicuri. Queste funzioni sono pensate solo per essere utilizzate in situazioni in cui la sicurezza non è un problema, come mostrare testi di saluto casuali per ripetere visitatori o per generare dati statistici casuali.
Le funzioni rand ($ min, $ max)
e mt_rand ($ min, $ max)
può generare interi casuali positivi tra valori dati incluso il $ min
e $ max
valore. Quando le funzioni vengono chiamate senza alcun parametro, generano numeri casuali tra 0 e getrandmax ()
. Puoi eco
il valore di getrandmax ()
per vedere il massimo numero casuale possibile che queste funzioni possono generare sulla tua piattaforma.
La funzione mt_rand ()
è 4 volte più veloce di rand ()
e restituisce false se $ max
è meno di $ min
. A partire da PHP 7.1.0, rand ()
è stato effettivamente fatto un alias di mt_rand ()
. L'unica differenza è questa rand ()
continua a non dare un errore se $ max
è meno di $ min
mantenere la retrocompatibilità.
Ecco un loop per generare valori casuali tra 0 e 100 milioni di volte. Come puoi vedere, i valori 0, 50 e 100 sono generati circa 10.000 volte con leggere fluttuazioni.
Entrambe queste funzioni hanno anche le loro funzioni di seminatrice chiamate srand ()
e mt_srand ()
fornire un seme per i generatori di numeri casuali. Dovresti solo ricordare che chiami solo srand ()
e mt_srand ()
una volta nel tuo programma. Chiamandoli prima di ogni chiamata a rand ()
e mt_rand ()
ti darà gli stessi numeri "casuali" ogni volta.
PHP è dotato di molte funzioni integrate che dovrebbero soddisfare tutte le vostre esigenze di calcolo quotidiane. È possibile utilizzare queste funzioni per eseguire calcoli leggermente più complicati come GCD, LCM e fattoriali.
Ci sono solo un paio di cose che dovresti ricordare quando usi queste funzioni. Ad esempio, il valore restituito da funzioni come pavimento()
e ceil ()
è un numero intero, ma è ancora un float. Allo stesso modo, tutte le funzioni trigonometriche si aspettano che i loro angoli siano dati in radianti. Otterrai risultati non corretti se passi loro un valore di angolo che vuoi essere trattato come misura di laurea. Quindi assicurati di controllare il valore di ritorno e gli argomenti attesi di tutte queste funzioni nella documentazione.