Ir para conteúdo

POWERED BY:

Arquivado

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

Cyber_Not

não entendi esse while...

Recommended Posts

Alguém pode me explicar esse while, que é usado para listar arquivos de um diretório:

while (false !== ($file = readdir($abrir))) {

funcionaria se eu colocasse asism ?

$file = readdir($abrir);while(false !== ($file)){

Compartilhar este post


Link para o post
Compartilhar em outros sites

E esse false!==, serve pra quê ?

Alguém pode me explicar esse código ?

 

Até

<{POST_SNAPBACK}>

bom, primeiro vamos esclarecer uma diferenca:

 

false != 0

false !== 0

 

pelo jeito, ateh onde você entende, essas 2 coisas sao iguais, mas nao sao, vou explicar porque:

 

no 1 caso, ela aceitaria como false, porque voce esta comparando false com 0, e pela comparacao != isso seria mentira, pois 0 e false sao iguais, os resultados de string e numericos podem retornar false nas seguintes ocasioes:

 

numericos - eh falso se o numero for 0

string - e falso se a string for nula, n conter valores, ou apenas valores em branco

 

agora, ja no 2 caso, retornaria true, pois false seria considerado dirente de 0, pois pela comparacao !== você compara tipos exatos, e ele so retornaria false caso você comparace dessa forma: false !== false

 

espero q você tenha entendido o a diferenca de != e !==

 

 

agora vamos para a 2 parte, o porque do (false !== ($file = readdir($abrir))

 

bom, como você deve saber, os parenteses idicam oque deve ser executado antes, e oq deve ser executado depois, entao, vamos entender que a 1 coisa a ser feita nessa comparacao eh pegar o resultado do readdir($abrir), o resultado desse readdir vai para a variavel $file, se ele conseguir ler o diretorio, entao ele vai retornar uma string com o nome do arquivo ou pasta, caso contrario, se n tiver + nada no diretorio, ele vai retornar false, ou seja, oq o codigo faz e ler o diretorio ateh ele retornar false, quando isso acontecer, quer dizer q n tem + nada para ser lido no diretorio, logo, o while pode ser encerrado e codigo pode prosseguir

 

eh isso mano, espero q você tenha entendido, qq duvida pode posta ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pô, valeu cara. Só não entendi muito bem a diferença de != pra !==.Qual a diferença nesse caso ?false != 1;false !== 1;e se no código em vez de !== colocasse != o q aconteceria ?Valeu, até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pô, valeu cara.

Só não entendi muito bem a diferença de != pra !==.

 

Qual a diferença nesse caso ?

false != 1;

false !== 1;

 

e se no código em vez de !== colocasse != o q aconteceria ?

 

Valeu, até mais.

<{POST_SNAPBACK}>

kra, nesse seu caso ai, sempre retornaria true, pois o valor numerico eh 1, como eu falei no post anterior, o unico valor numerico q retorna false eh o 0, entao false sempre vai ser diferente de 1 em ambos os casos, mas pra você n ficar na duvida vo escreve um script aki:

 

PHP

[*]<?php

[*]$var1 = false;

[*]$var2 = 0;

[*]$var3 = 1;

[*]$var4 = "";

[*]$var5 = "oi";

[*]

[*]if($var1 == false)

[*] echo "true<br>";

[*]else

[*] echo "false<br>";

[*]

[*]if($var1 === false)

[*] echo "true<br>";

[*]else

[*] echo "false<br>";

[*]

[*]if($var2 == false)

[*] echo "true<br>";

[*]else

[*] echo "false<br>";

[*]

[*]if($var2 === false)

[*] echo "true<br>";

[*]else

[*] echo "false<br>";

[*]

[*]if($var3 == false)

[*] echo "true<br>";

[*]else

[*] echo "false<br>";

[*]

[*]if($var3 === false)

[*] echo "true<br>";

[*]else

[*] echo "false<br>";

[*]

[*]if($var4 == false)

[*] echo "true<br>";

[*]else

[*] echo "false<br>";

[*]

[*]if($var4 === false)

[*] echo "true<br>";

[*]else

[*] echo "false<br>";

[*]

[*]if($var5 == false)

[*] echo "true<br>";

[*]else

[*] echo "false<br>";

[*]

[*]if($var5 === false)

[*] echo "true<br>";

[*]else

[*] echo "false<br>";

[*]

[*]?>

 

faz o seguinte, analiza os resultados desse script ai, provavelmente você vai perceber a diferenca ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

então:

1 =1, 1==1, 1===1;

Tudo isso retornaria true né ?

e

false=0 (true) , false ==0(true), flase ===0(false).

 

É isso ?

 

Valeu, até mais.

<{POST_SNAPBACK}>

você quase acerto... soh erro no false=0 (true)

 

pq eh o seguinte, o = n retorna valor, ele apenas atribui, por exemplo, c você disse q false = 0, entao eh e akbosse, ele vai resultar o 0, e como você ja sabe, 0 torna-se false numa comparacao booleana, entao o false=0 retorna false ;)

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.