Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?CumpsBem, 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?
Certo.
Certo.
Bem, obrigado! assim ja estou esclarecido! hehe
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:
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? ;)