Diferencia entre revisiones de «PHP Operadores»

De MediaWiki
Ir a la navegación Ir a la búsqueda
(Página creada con «* 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 é igu...»)
 
 
(No se muestran 6 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
 +
== Introdución ==
 
* Como en todas as linguaxes de programación imos ter operadores que aplicaremos a variables.
 
* Como en todas as linguaxes de programación imos ter operadores que aplicaremos a variables.
  
Línea 5: Línea 6:
 
: Non necesitamos ter en conta as precedencias entre operadores se utilizamos parénteses nas nosas operacións :)
 
: Non necesitamos ter en conta as precedencias entre operadores se utilizamos parénteses nas nosas operacións :)
  
−
No seguinte cadro aparecen os operadores por orde de precedencia (os que teñen máis 'peso' están arriba na táboa).
 
  
−
[[Imagen:Php_operadores_1.jpg|400px|center]]
+
== 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).
 +
 
 +
[[Imagen:Php_operadores_1.jpg|500px|center]]
 
<center><small><u>Nota:</u> Información obtida de [http://php.net/manual/es/language.operators.precedence.php php.net].</small></center>
 
<center><small><u>Nota:</u> Información obtida de [http://php.net/manual/es/language.operators.precedence.php php.net].</small></center>
  
  
 +
== Operadores aritméticos ==
 +
:No seguinte cadro aparecen os operadores aritméticos.
 +
 +
[[Imagen:Php_operadores_2.jpg|500px|center]]
 +
<center><small><u>Nota:</u> Información obtida de [http://php.net/manual/es/language.operators.arithmetic.php php.net].</small></center>
 +
 +
== Operador de asignación ==
 +
 +
* O operador de asignación é '''='''
 +
 +
::<syntaxhighlight lang="php" line enclose="div" highlight="" >
 +
<?php
 +
$variableNumérica=5;
 +
$variableCadea='Ola';
 +
?>
 +
</syntaxhighlight>
 +
 +
* 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.
 +
::<syntaxhighlight lang="php" line enclose="div" highlight="3" >
 +
<?php
 +
$a = 3;
 +
$b = &$a; // $b é unha referencia para $a
 +
 +
print "$a\n"; // amosa 3
 +
print "$b\n"; // amosa 3
 +
 +
$a = 4; // cambia $a
 +
 +
print "$a\n"; // amosa 4
 +
print "$b\n"; // amosa 4 tamén, dado que $b é unha referencia para $a
 +
?>
 +
</syntaxhighlight>
 +
: Información obtida [http://php.net/manual/es/language.operators.assignment.php deste enlace].
 +
 +
== Operadores tipo bit ==
 +
 +
:No seguinte cadro aparecen os operadores de tipo bit.
 +
 +
[[Imagen:Php_operadores_3.jpg|500px|center]]
 +
<center><small><u>Nota:</u> Información obtida de [http://php.net/manual/es/language.operators.bitwise.php php.net].</small></center>
 +
 +
 +
== Operadores de comparación ==
 +
 +
:No seguinte cadro aparecen os operadores de comparación.
 +
 +
[[Imagen:Php_operadores_4.jpg|500px|center]]
 +
<center><small><u>Nota:</u> Información obtida de [http://php.net/manual/es/language.operators.comparison.php php.net].</small></center>
 +
 +
 +
 +
* '''IMPORTANTE:'''
 +
:* O operador == compara valores e se son de diferente tipo, fai unha conversión automática de tipo.
 +
:: Por exemplo:
 +
::<syntaxhighlight lang="php" enclose="div" highlight="3" >
 +
$var1 = 5;
 +
$var2 = 5;
 +
if($var==$var1){
 +
  print("Son iguais");
 +
}
 +
</syntaxhighlight>
 +
 +
 +
: 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:
 +
::<syntaxhighlight lang="php" enclose="div" highlight="" >
 +
function exemploFuncion(int $num): bool|string {
 +
if($num%2==0) {
 +
  return true;  // E par
 +
}
 +
else{
 +
  return 'Número incorrecto';
 +
}
 +
}
 +
</syntaxhighlight>
 +
: Se chamamos a funnción cun número que non sexa par e miramos se é true ou false da forma:
 +
::<syntaxhighlight lang="php" enclose="div" highlight="" >
 +
  if(exemploFuncion(5)==true){
 +
    printf('É un número par...');
 +
  }
 +
</syntaxhighlight>
 +
 +
 +
: 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.
 +
 +
[[Imagen:Php_operadores_5.jpg|500px|center]]
 +
<center><small><u>Nota:</u> Información obtida de [http://php.net/manual/es/language.operators.increment.php php.net].</small></center>
 +
 +
 +
== Operadores lóxicos ==
 +
 +
:No seguinte cadro aparecen os operadores lóxicos.
 +
 +
[[Imagen:Php_operadores_6.jpg|500px|center]]
 +
<center><small><u>Nota:</u> Información obtida de [http://php.net/manual/es/language.operators.logical.php php.net].</small></center>
 +
 +
 +
 +
== 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).