ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで is_file が file_exists を置き換えられない理由

PHP_PHP チュートリアルで is_file が file_exists を置き換えられない理由

WBOY
WBOYオリジナル
2016-07-13 10:37:04949ブラウズ

次のコードを使用してテストできます:

コードをコピーします コードは次のとおりです:
$filename = 'test.txt';
ファイル名が存在します!n";
} else {echo "$ filename no exists!n";上記のコードでは、is_file 関数を初めて使用してファイルが存在するかどうかを確認し、次に sleep 関数を呼び出して 10 秒間スリープします。この 10 秒以内に、test.txt ファイルを削除する必要があります。最後に、is_file 関数を 2 回目に呼び出した結果を確認します。出力結果は次のとおりです。
test.txt が存在します!
test.txt が存在します!
そうです、「test.txt が存在します!」が 2 回出力されました。これはなぜでしょうか。理由は、is_file にキャッシュがあるためです。 is_file 関数が初めて呼び出されたとき、PHP はファイル属性 (file stat) を保存します。is_file が再度呼び出されたとき、ファイル名が最初と同じであれば、そのファイルは直接キャッシュに返されます。
is_file を file_exists に変更してはどうでしょうか?上記のコードの is_file 関数を file_exists 関数に変更し、上記のテスト メソッドを再度使用してテストできます。結果は次のとおりです:
test.txt は存在​​します!
test.txt は存在​​しません!
file_exists を 2 回呼び出すと、ファイルが存在しないことが返されます。これは、file_exists 関数がキャッシュされていないためです。 file_exists を指定すると、ディスクが検索されてファイルが存在するかどうかが確認されるため、2 回目のみ false が返されます。
ここまで言っておきますが、is_file の方がパフォーマンスが良いと主張するのであれば、それは仕方がありません。


http://www.bkjia.com/PHPjc/736811.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/736811.html

技術記事

次のコードを使用してテストできます。 次のようにコードをコピーします。 ?php $filename = 'test.txt'; if (is_file($filename)) { echo "$filename names!n"; $filena ...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。