Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Celso Neto

[ ] com operadores

Recommended Posts

Pessoal, é o seguinte eu tenho este código e já compreendi o que ele faz (isto porque estou a ler um tutorial de PHP).

 

<?php$mystring = 'abc';$findme   = 'c';$pos	  = strpos($mystring, $findme);If ($pos === false) {   echo "A sting '$findme' não foi encontrada na string '$mystring'";} else {   echo "A string '$findme' foi encontrada na string '$mystring'";   echo " e existe na posição $pos";}?>
Na linha 5 gostava de saber o porquê de se usarem os 3 === . Alguem pode-me esclarecer sff?

Cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

Celso, o operador "===" retorna um valor booleano, assim como o "==". A diferença é que ele só retornará TRUE se os valores comparados forem idênticos. Por exemplo:

 

$x = 0;
$y = false;

var_dump($x == $y); // TRUE, pois um valor "zero" é igual a um "false"
var_dump($x === $y); // FALSE, pois eles não são idênticos

 

No caso do seu exemplo, a função strpos() retorna a posição de um caractere na string. O problema é que essa posição pode ser igual a ZERO, o que seria interpretado como FALSE com o operador "=="... ou seja, seria como se o caractere não existisse na string. Por isso que foi utilizado o operador "==="... assim é possível diferenciar o retorno da função entre os valores booleano FALSE e integer ZERO.

 

beleza? ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, axo que estou a entender. Por exemplo:

 

<?php$x = 0;$y = 0;var_dump($x == $y); // TRUE, pois um valor "zero" é igual a um "false"var_dump($x === $y); // TRUE, pois assim ja são identicos?>
Se mudasse a varável $y para 0 (zero) o resultado ja seria como eu apresentei em cima certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.