Diferencia entre revisiones de «PHP Operadores»

De MediaWiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 2 ediciones intermedias del mismo usuario)
Línea 27: Línea 27:
 
::<syntaxhighlight lang="php" line enclose="div" highlight="" >
 
::<syntaxhighlight lang="php" line enclose="div" highlight="" >
 
<?php
 
<?php
−
variableNumérica$=5;
+
$variableNumérica=5;
−
variableCadea='Ola';
+
$variableCadea='Ola';
 
?>
 
?>
 
</syntaxhighlight>  
 
</syntaxhighlight>  
Línea 77: Línea 77:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
−
: Pero se poñemos un valor de cadea nunha das variables tamén entrará no if, se a cadea ten valor '5' xa que comparamos 5=='5'. Ao ter doble guión convirte a cadea a número e obtén true.
+
 
−
Pola contra, se empregamos === compara tipo e valor. Na expresión anterior 5==='5' xa non devolve true, porque comparamos int con string.
+
: Pola contra, se empregamos === compara tipo e valor. Na expresión anterior 5 ==='5' xa non devolve true, porque comparamos int con string.
 +
 
 +
: '''Nota: Ata a versión php 7''' se poñemos un valor de cadea nunha das variables tamén entrará no if, se a cadea ten valor '5' xa que comparamos 5 == '5'. Ao ter doble guión convirte a cadea a número e obtén true.
 +
 
 +
: '''Sempre que sexa posible mellor empregar === e !== para que compare valor e tipo.'''
  
  
Línea 121: Línea 125:
  
  
 +
== Operador nulo ==
 +
 +
: O operador nulo compara se o valor anterior a el é nulo e se é o caso devolve un valor indicado por nos.
 +
 +
::<syntaxhighlight lang="php" enclose="div" highlight="" >
 +
<?php
 +
$numero = null;
 +
$valor = $numero ?? 1;
  
 +
echo $valor;
 +
?>
  
 +
</syntaxhighlight>
  
  
 
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2016).
 
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2016).

Revisión actual del 15:52 13 sep 2026

Introdución

  • Como en todas as linguaxes de programación imos ter operadores que aplicaremos a variables.
  • Ditos operadores teñen unha precedencia.
Por exemplo: 1 + 2 * 3 é igual 1+(2*3) xa que o operador de multiplicación ten máis precedencia que o da suma.
Non necesitamos ter en conta as precedencias entre operadores se utilizamos parénteses nas nosas operacións :)


Precedencia de operadores

No seguinte cadro aparecen os operadores por orde de precedencia (os que teñen máis 'peso' están arriba na táboa).
Php operadores 1.jpg
Nota: Información obtida de php.net.


Operadores aritméticos

No seguinte cadro aparecen os operadores aritméticos.
Php operadores 2.jpg
Nota: Información obtida de php.net.

Operador de asignación

  • O operador de asignación é =
1 <?php
2 $variableNumérica=5;
3 $variableCadea='Ola';
4 ?>
  • Tamén se pode facer unha asignación por referencia. Neste tipo de asignación temos dous variables 'apuntando' á mesma dirección de memoria. Polo tanto a modificación do valor nunha das variables fai que se modifique noutra variable.
 1 <?php
 2 $a = 3;
 3 $b = &$a; // $b é unha referencia para $a
 4 
 5 print "$a\n"; // amosa 3
 6 print "$b\n"; // amosa 3
 7 
 8 $a = 4; // cambia $a
 9 
10 print "$a\n"; // amosa 4
11 print "$b\n"; // amosa 4 tamén, dado que $b é unha referencia para $a
12 ?>
Información obtida deste enlace.

Operadores tipo bit

No seguinte cadro aparecen os operadores de tipo bit.
Php operadores 3.jpg
Nota: Información obtida de php.net.


Operadores de comparación

No seguinte cadro aparecen os operadores de comparación.
Php operadores 4.jpg
Nota: Información obtida de php.net.


  • IMPORTANTE:
  • O operador == compara valores e se son de diferente tipo, fai unha conversión automática de tipo.
Por exemplo:
$var1 = 5;
$var2 = 5;
if($var==$var1){
  print("Son iguais");
}


Pola contra, se empregamos === compara tipo e valor. Na expresión anterior 5 ==='5' xa non devolve true, porque comparamos int con string.
Nota: Ata a versión php 7 se poñemos un valor de cadea nunha das variables tamén entrará no if, se a cadea ten valor '5' xa que comparamos 5 == '5'. Ao ter doble guión convirte a cadea a número e obtén true.
Sempre que sexa posible mellor empregar === e !== para que compare valor e tipo.


Este mesmo problema pode aparecer cando empregamos funcións que poden devolver distintos tipos de datos.
Por exemplo:
function exemploFuncion(int $num): bool|string {
 if($num%2==0) {
   return true;  // E par
 }
 else{
   return 'Número incorrecto';
 }
}
Se chamamos a funnción cun número que non sexa par e miramos se é true ou false da forma:
  if(exemploFuncion(5)==true){
    printf('É un número par...');
  }


Entrará no if e amosará o texto: É un número para.
Teremos que empregar o === para que compare tipo e valor e así non entraría.

Operadores de incremento/decremento

No seguinte cadro aparecen os operadores de incremento/decremento.
Php operadores 5.jpg
Nota: Información obtida de php.net.


Operadores lóxicos

No seguinte cadro aparecen os operadores lóxicos.
Php operadores 6.jpg
Nota: Información obtida de php.net.


Operador nulo

O operador nulo compara se o valor anterior a el é nulo e se é o caso devolve un valor indicado por nos.
<?php 
$numero = null;
$valor = $numero ?? 1;

echo $valor;
?>



-- Ángel D. Fernández González -- (2016).