Web / 4 marzo 2024

PHP Code 5

Gli Operatori PHP

by A2G-Webroom

Gli Operatori PHP


Gli operatori sono simboli con cui si eseguono operazioni sulle variabili o valori.

Operatori aritmetici
Operatori di incremento/decremento
Operatori di assegnazione
Operatori di confronto
Operatori logici
Operatori di stringa
Operatori di matrice
Operatori di assegnazione condizionale

Operatori aritmetici

+ Somma
- Sottrae
* Moltiplica
/ Divide
% Resto
** Esponenziale

<?php
$x 
20;
$y 6;
$z 2;
echo 
$x+$y  ."<br>";    //-----> 26
echo $x-$y  ."<br>";    //-----> 14
echo $x*$y  ."<br>";    //-----> 120
echo $x/$y  ."<br>";    //-----> 3.333
echo $x%$z  ."<br>";  //-----> 2
echo $x**$z ."<br>";   //-----> 400
?>

Nota: l’operatore % calcola ( 20 –(6x3) = 2 resto)


Operatori di incremento/decremento di una variabile

$++ Post-Incrementa di 1
++$ Pre-Incrementa di 1
$-- Post-Decrementa di 1
--$ Pre-Decrementa di 1

<?php
$x 
20;
$y 20;
$ax 20;
$ay 20;

// Opera con la seconda istanza
echo $x++   ."<br>";  //-----> 20
echo $x++   ."<br>";  //-----> 21
echo "<br>";
echo 
$y--   ."<br>";  //-----> 20
echo $y--   ."<br>";  //-----> 19

echo "<br>";

// Opera con la prima istanza
echo ++$ax   ."<br>";  //-----> 21
echo ++$ax   ."<br>";  //-----> 22
echo "<br>";
echo --
$ay   ."<br>";  //-----> 19
echo --$ay   ."<br>";  //-----> 18
?>


Operatori di assegnazione valore ad una variabile

= $x = $y Assegna valore y a x
+= $x += $y Somma ed assegna a x come $x = $x + $y
-= $x -= $y Sottrae ed assegna a x come $x = $x - $y
*= $x *= $y Moltiplica ed assegna a x come $x = $x * $y
/= $x /= $y Divide ed assegna a x come $x = $x / $y
%= $x %= $y Divide intero ed assegna a x il resto come $x = $x % $y

<?php
$x 
20;
$y 6;

$x $y;
echo 
$x     ."<br>";  //-----> 6

unset($x);  // cancella memoria $x
$x 20;
$x += $y;      
echo 
$x     ."<br>";  //-----> 26

unset($x);  
$x 20;
$x -= $y;    
echo 
$x     ."<br>";  //-----> 14

unset($x);
$x 20;
$x *= $y;
echo 
$x     ."<br>";  //-----> 120

unset($x);
$x 20;
$x /= $y;    
echo 
$x     ."<br>";  //-----> 3.333

unset($x);
$x 20;
$x %= $y;    
echo 
$x     ."<br>";  //-----> 2
?>

Nota: l’operatore % calcola ( 20 –(6x3) = 2 resto)


Operatori di confronto

Sono usati per confrontare due valori. Il risultato sarà sempre il valore boleano true o false

$x == $y Uguale Restituisce VERO se i valori sono uguali
$x === $y Identico Restituisce VERO se i valori e tipi sono identici
$x != $y Non uguale Restituisce VERO se i valori sono NON sono uguali
$x <> $y Non uguale Restituisce VERO se i valori sono NON sono uguali
$x !== $y Non identico Restituisce VERO se i valori e tipi** NON sono identici
$x > $y Maggiore di Restituisce VERO se $x maggiore di $y
$x < $y Minore di Restituisce VERO se $x minore di $y
$x >= $y Maggiore od uguale a Restituisce VERO se $x maggiore od uguale $y
$x <= $y Minore od uguale a Restituisce VERO se $x minore uguale $y

var_dump** Questa funzione consente di stampare il valore ed il tipo di qualsiasi variabile. Nell’esempio sottostante analizza i valori boleani “true” e “false” degli operatori di confronto.

<?php
$x  
10;
$xy 10;
$y 20;
$z 15;
var_dump($x == $xy);  //-----> true
var_dump($x === $xy); //-----> true
var_dump($x != $y);   //-----> true
var_dump($x <> $y);   //-----> true
var_dump($x !== $z);  //-----> true
var_dump($y $x);    //-----> true
var_dump($x $y);    //-----> true
var_dump($y >= $x);   //-----> true
var_dump($x <= $y);   //-----> true
?>


Operatore Spaceship

Anche l'operatore Spaceship viene utilizzato per confrontare due espressioni.
Restituisce 3 valori numerici ( -1, 0, 1 )

$x <=> $y Spaceship Restituisce -1 se $x minore di $y
Restituisce 0 se $x uguale a $y
Restituisce 1 se $x maggiore di $y

<?php
$x  
10;
$xy 10;
$y 20;

var_dump($x <=> $y);  //-----> -1
var_dump($x <=> $xy); //----->  0
var_dump($y <=> $x);  //----->  1
?>

Operatori logici

Questi operatori sono utilizzati all'interno di istruzioni condizionali ( es. if ), confrontando i valori booleani delle variabili

and $x and $y VERO se entrambi  $x e  $y sono veri
&& $x && $y VERO se entrambi  $x e  $y sono veri
or $x or VERO se UNO o tutti e DUE sono veri
xor $x xor $y VERO se SOLO UNO dei due è vero
|| $x || $y VERO se UNO o tutti e DUE sono veri
! !$x Inverte il valore VERO/FALSO di $x

Se i valori sono veri stampa la stringa

<?php
$x 
20;  
$y 10;

if (
$x == 20 and $y == 10) {  // true
    
echo "Hello world!";
}
echo 
"<br>";
if (
$x == 20 && $y == 20) {  // false
    
echo "Hello John!";
}
?>  
Risultato:
Hello world!

L’uso delle parentesi, anche se non sempre dovute, garantisce una giusta leggibilità del codice ed evita eccezioni di precedenza tra gli operatori in particolare verso l'operatore =

Ordine di precedenza Associatività Operatori Tipo operatore
1 Sinistra && logico
2 Sinistra || logico
3 Destra = += -= *= **= /= .= %= &= |= ^= <<= >>= ??= assegnazione
4 Sinistra and logico
5 Sinistra xor logico
6 Sinistra or logico

Differenze di comportamento tra or e xor con e senza (), quando = prende il sopravvento.
Con gli operatori || e && non abbiamo effetti in quanto hanno precedenza rispetto a =.

<?php
$x 
100;  
$y 50;

$f = ($x == 120 or $y == 50);  // uno dei due è vero --> true
$g = ($x == 100 xor $y == 80); // uno dei due è vero --> true

$ga $x == 120 or $y == 50;   // assegna come: (($ga = false) or true)  
$gb $x == 100 xor $y == 80;  // assegna come: (($gb = true) xor false)

$g3 $x == 120 || $y == 50;   // senza () uno dei due è vero --> true
$g4 $x == 120 && $y == 50;   // senza () solo uno è vero non entrambi--> false  
?>

Differenze di comportamento tra && e ||

<?php
$x 
100;  
$y 50;

$a = ($x == 100 && $y == 80);
var_dump($a);  // false

$b = ($x == 100 && $y == 50);
var_dump($b);  // true

$c = ($x == 120 && $y == 80);
var_dump($c);   // false

$a = ($x == 100 || $y == 80);
var_dump($a);  // true 

$b = ($x == 100 || $y == 50);
var_dump($b);  // true
 
$dc = ($x == 120 || $y == 80);
var_dump($c);  // false
?>



Articoli Relativi

PHP Code 5

A2G-Webroom 4 marzo 2024

PHP Code 4

A2G-Webroom 29 febbraio 2024

PHP Code 3

A2G-Webroom 27 febbraio 2024

PHP Code 3

A2G-Webroom 27 febbraio 2024

Sentenze Fideiussioni Specifiche

Gis-Bert46 04 February 2024