Kezdő vagyok. Hogy lehet ezt értelmezni? while (! ( ($bejegyzes= readdir ($konyvtar) ) === false) ) {
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Ekvivalens ezzel:
while ( ($bejegyzes= readdir ($konyvtar)) === true )
Kicsit túl lett bonyolítva csak.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
#1: Elolvastad te a readdir dokumentációját?
Returns the entry name on success or FALSE on failure.
Szóval true soha nem lesz.
Kérdező: Pontosan melyik részét nem érted. A readdir visszaad egy stringet vagy falset. A Ciklus addig megy, amig a visszadott ertek nem false és mellesleg beleteszi ezt az értéket a $bejegyzes valtozóba.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
"Pontosan melyik részét nem érted." A kérdésben az utolsó mondatban leírtam, hogy melyik az a rész, amit nem értettem. De most már letisztult, az 1-es válaszával....
Köszönöm
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
#4 Kivéve, hogy az #1-es válasza nem jó, mert soha nem fogsz true-t visszakapni. Vagy visszaad egy értéket, vagy FALSE-t. TRUE-t soha. Hogy miért kell oda explicit az === false? Mert a függvény visszatérhet olyan értékkel, ami false-ra értékelődhet ki (pl 0), de valójában egy valid visszatérési érték. Ezért kell explicit módon ellenőrizni, hogy false-t ad vissza, és nem valami mást, ami false-ként értelmezhető.
Beszédesebb példa az array_search használata elágazásban. Az array_search megkeres egy adott értéket egy tömbben, és visszaadja az indexet, amelyen található, vagy FALSE-t. Akárcsak itt, az array_search esetében is explicit módon kell false-ra ellenőrizni. Miért? Mert lehet, hogy a keresett érték a legelső eleme a tömbnek, vagyis a 0. indexén található. A 0 viszont false-ként értelmezhető.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Bizony, úgy van, ahogy a 80%-os válaszoló írta. Muszáj false-t vizsgálni, mert a visszatérési érték vagy egy szöveg, vagy false, nincs más opció. Tehát itt a "nem false" az nem true-t jelent, hanem egy sztringet.
A fenti linkről:
"Please note the fashion in which readdir()'s return value is checked in the examples below. We are explicitly testing whether the return value is identical to [..] FALSE since otherwise, any directory entry whose name evaluates to FALSE will stop the loop (e.g. a directory named "0")."
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!