Diferença entre os operadores de comparação == e === em PHP

Subodh Poudel 30 janeiro 2023
  1. Compare um valor inteiro e um valor de ponto flutuante com o operador de comparação duplo (==) e triplo (===) igual em PHP
  2. Compare um valor inteiro e um valor booleano com o operador de comparação duplo (==) e triplo (===) igual em PHP
  3. Compare um valor inteiro e um valor de string com o operador de comparação duplo e triplo igual
Diferença entre os operadores de comparação == e === em PHP

Este artigo irá apresentar a diferença entre os operadores de comparação duplos iguais == e triplos iguais === em PHP. A diferença significativa é que o operador de comparação double equals compara o valor dos dois operandos. Em contraste, o operador de comparação triplo igual a comparar o valor e o tipo dos operandos.

Apresentaremos um método para diferenciar o operador de comparação duplo igual e triplo igual, comparando um valor inteiro e um valor de ponto flutuante. Usaremos o operador ternário como declaração condicional.

O segundo método compara o operador de comparação duplo igual e triplo igual a um número inteiro e um valor booleano. Também usaremos o operador ternário neste método.

Também demonstraremos a comparação de um valor inteiro e uma string usando double equals e o operador de comparação triplo igual. Usaremos a função var_dump() para descartar a comparação neste método.

Compare um valor inteiro e um valor de ponto flutuante com o operador de comparação duplo (==) e triplo (===) igual em PHP

Podemos comparar os dois mesmos valores de tipos diferentes usando os operadores de comparação. Este método compara um número inteiro e um ponto flutuante com o mesmo valor. Podemos usar o operador ternário para comparar os operandos e a função var_dump() para despejar seus valores booleanos.

Por exemplo, crie uma variável $a e armazene o valor inteiro 5 nela. Armazene um valor de ponto flutuante 5.0 em outra variável $b. Compare as duas variáveis ​​com o operador de comparação triplo usando o operador ternário. O valor verdadeiro retorna true e o valor falso retorna false no operador ternário. Armazene a operação na variável $c. Da mesma forma, compare as duas variáveis ​​com operador duplo igual ao operador ternário e armazene a operação na variável $d. Use as funções var_dump() nas variáveis ​​$c e $d.

A saída do exemplo de código retorna o valor false para o operador triplo igual e o valor true para o operador duplo igual. O valor 5 é do tipo inteiro e o valor 5.0 é do tipo flutuante, embora o valor seja o mesmo. Portanto, o operador triplo igual retorna um valor falso e o operador duplo retorna um valor verdadeiro.

Código de exemplo:

#php 7.x 
<?php
$a = 5; 
$b = 5.0; 
$c = $a===$b ? true : false;
$d = $a==$b ? true : false;
var_dump($c);
var_dump($d);
?>

Resultado:

bool(false) bool(true)

Compare um valor inteiro e um valor booleano com o operador de comparação duplo (==) e triplo (===) igual em PHP

Este método compara um valor inteiro 1 e o valor booleano true. O valor inteiro 1 denota o valor verdadeiro. Podemos usar o operador ternário como no primeiro método. Por exemplo, armazene o valor inteiro 1 em uma variável $a. Crie outra variável $b e armazene um valor booleano true nela. Use o operador ternário para comparar essas duas variáveis ​​como no primeiro método. Compare as variáveis ​​com o operador de comparação duplo igual e triplo igual. Armazene os resultados nas variáveis ​​$c e $d e use as funções var_dump() para despejar essas variáveis.

A variável $c retorna o valor falso, e o valor $d retorna o valor verdadeiro. Como o operador triplo igual a compara o tipo dos operandos, é óbvio que o tipo 1 e true não corresponde. Mas, o valor 1 é o valor verdadeiro, então seu valor é igual ao valor booleano true.

Código de exemplo:

#php 7.x 
<?php
$a = 1; 
$b = true; 
$c = $a===$b ? true : false;
$d = $a==$b ? true : false;
var_dump($c);
var_dump($d);
?>

Resultado:

bool(false) bool(true)

Compare um valor inteiro e um valor de string com o operador de comparação duplo e triplo igual

Podemos comparar os operandos diretamente na função var_dump() para ver o resultado da comparação. Este método é o método abreviado dos métodos que usam os operadores ternários. A ilustração abaixo compara um valor inteiro e um valor de string usando o operador de comparação triplo igual e duplo igual.

Por exemplo, crie uma variável $a e armazene o valor inteiro 5 nela. Armazene um valor de string '5' em outra variável $b. Compare essas duas variáveis ​​primeiro usando o operador de comparação triplo igual e, em seguida, usando o operador duplo igual. Envolva essas comparações dentro das funções var_dump().

A primeira comparação resulta em um valor falso. A segunda comparação retorna o valor verdadeiro. O tipo das duas variáveis ​​não corresponde, portanto, resulta em um valor falso. O valor da string 5 é convertido em um valor inteiro, e o valor para ambas as variáveis ​​será o mesmo. No entanto, o tipo das variáveis ​​não muda.

Código de exemplo:

#php 7.x 
<?php
$a = 5; 
$b = '5';
var_dump($a===$b);
var_dump($a==$b);
?>

Resultado:

bool(false) bool(true)
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn