OPERATORS IN PHP
ARITHMETIC OPERATORS
They follow the rules of arithmetic we learned in school.
OPERATORS ON STRINGS
The first is the chaining operator, the dot . the other is the assignment operator =.
COMPARISON OPERATORS
As the name implies such operators allow us to compare values. The advice to have total control over the code is to cast before comparing two values of different types and use strict equality === in order to check type and value. In PHP 7 a new comparison operator was introduced, the spaceship operator <=> compares two values and returns -1 if the first value is less than the second, 0 if they are equal, 1 if the first value is greater than the second. This operator is often used in callback functions i.e., a function that we pass as an argument in the invocation of another function.
<?php //OPERATORI DI CONFRONTO $a = 10; $b = "10";//Viene trasformato in (int)10; /*--Se non vogliamo demandare a PHP la conversione automatica da string a int possiamo fare noi la conversione.*/ //$b = (int)"10"; var_dump($a == $b);//== Operatore di uguaglianza /*--Se vogliamo essere certi che non solo il valore sia uguale ma anche il tipo usiamo l'operatore === (uguaglianza stretta)*/ var_dump($a === $b);//false la prima cosa che fa PHP è //controllare se il tipo di dato è uguale. var_dump($a != $b);//Operatore di disuguaglianza var_dump($a !== $b);//Operatore di disuguaglianza stretta //Controlliamo anche il tipo $a = 10; $b = (int)"12"; var_dump($a < $b);//Operatori di disuguaglianza <;<=;>;>= /*-- In PHP 7 è stato introdotto un nuovo operatore di confronto, l'operatore spaceship <=> confronta due valori e ritorna -1 se il primo valore è minore del secondo, 0 se sono uguali 1 se il primo valore è maggiore del secondo.*/ $a = 10; $b = 20; echo $a <=> $b; /*--Tale operatore viene utilizzato spesso nelle funzioni di callback cioè una funzione che passiamo come argomento nell'invocazione di un'altra funzione.*/
INCREMENT AND DECREMENT OPERATORS
<?php //OPERATORI DI INCREMENTO E DECREMENTO ++; -- $a = 1; $b = 2; //$a++;//2 echo $a++ ."\n\r";/*--Post incremento, significa che prima viene ritornato $a e mostrata con echo e poi viene incrementato. Se facciamo un echo subito dopo abbiamo 2. La variabile viene incrementata dopo l'istruzione*/ echo $a."\n\r"; echo ++$b ."\n\r"; /*--Pre incremento, prima viene incrementato b poi ritornato con echo.*/ $a = 1; echo $a--."\n\r";/*--Post decremento, significa che prima viene ritornato $a e mostrato con echo e poi viene decrementato. Se facciamo un echo subito dopo abbiamo 0. La variabile viene incrementata dopo l'istruzione*/ echo $a."\n\r";
LOGICAL OPERATORS
<?php //OPERATORI LOGICI AND &&; OR ||;XOR ;NOT ! $sole = true; $voglia = true; /*--Supponiamo che vogliamo fare una passegiiata se c'è il sole e se ne abbiamo voglia.*/ if ($sole === true && $voglia === true)//Se vogliamo che entrambe le condizioni siano vere usiamo un AND. { echo 'Faremo una passeggiata'."\n\r"; }else{ echo 'Non faremo una passeggiata'."\n\r"; } /*--L'opratore logico AND ritorna true solo se entrambe le condizioni sono vere.*/ var_dump(true && true)."\n\r"; var_dump(true && false)."\n\r"; var_dump(false && false). "\n\r"; /*--L'operatore logico || ritorna true se almeno una delle due condizioni è vera.*/ var_dump(true || true)."\n\r"; var_dump(true || false)."\n\r"; var_dump(false || false). "\n\r"; /*--Operatore xor abbiamo true se una condizione è true e l'altra false*/ var_dump(true xor true)."\n\r"; var_dump(true xor false)."\n\r"; var_dump(false xor true). "\n\r"; var_dump(false xor false). "\n\r"; /*--L'operatore not (!) di negazione inverte il valore, da true a false e da false a true*/ var_dump(!false). "\n\r"; $stringa = 'Corso PHP'; var_dump((boolean)($stringa));//Solo se abbiamo una stringa vuota ciene convertita in false. var_dump((boolean)(0));//false var_dump((boolean)(0.0));//false var_dump((boolean)(null));//false var_dump((boolean)([]));//Array vuoto (false) if (!$_POST){//Array vuoto. Non possiamo utlizzare una stretta uguaglianza $_POST === false perchè i tipi sono diversi (ramo else) echo 'Form non inviato...'; }else { echo 'Form inviato...'; } /*--$_POST verrà convertito da PHP nel booleano false e l'uguaglianza $_POST == false sarà vera. possiamo anche usare l'operatore ! per entrare nella struttura condizionale, $_POST viene convertito in false, negandolo avremo true.*/ ?> <!DOCTYPE html> <html lang="it"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="OperatoriLogici.php" method="post"> <input type="text" name="campo1"> <input type="submit" name="myForm" value="Invia..."> </form> </body> </html>
Leave A Comment