首頁 >後端開發 >php教程 >為什麼PHP readdir函數每次執行結果不一樣?

為什麼PHP readdir函數每次執行結果不一樣?

WBOY
WBOY原創
2016-08-04 09:20:591014瀏覽

<code><?php 
    $path = dirname(__FILE__);
    $dir = opendir($path);
    while($file = readdir($dir))
    {
        echo "$file\n";
    }</code>

程式碼如上:
有兩種執行結果。
第一種
為什麼PHP readdir函數每次執行結果不一樣?
第二種

為什麼PHP readdir函數每次執行結果不一樣?
是win7環境下,php 5.6這個函數linux環境才可以正常執行的嗎?

回覆內容:

<code><?php 
    $path = dirname(__FILE__);
    $dir = opendir($path);
    while($file = readdir($dir))
    {
        echo "$file\n";
    }</code>

程式碼如上:
有兩種執行結果。
第一種
為什麼PHP readdir函數每次執行結果不一樣?
第二種

為什麼PHP readdir函數每次執行結果不一樣?
是win7環境下,php 5.6這個函數linux環境才可以正常執行的嗎?

參考php官司方文件

<code>$path = dirname(__FILE__);
$dir = opendir($path);
while(false!==($file = readdir($dir)))
{
    echo "$file\n";
}</code>

你應該這樣寫才是正確方式,附官方文件說明

<code>使用readdir函数成功则返回文件名 或者在失败时返回 FALSE

</code>

但要特別當心::Warning

<code>此函数可能返回布尔值 FALSE,但也可能返回等同于 FALSE 的非布尔值。
请阅读 布尔类型章节以获取更多信息。应使用 === 运算符来测试此函数的返回值。
</code>

你看看你是不是有個檔案或目錄名叫 0 ?

權限問題吧...進程使用者應該是PHP或Apache,而不是你的登入帳號。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn