file_exists checks whether a path currently points to a file.

existence Check existence before reading optional files, then branch to a scalar fallback.

File Exists Check

mode
file_exists_check.php
Replay: real traced execution (multi-file project)
<?php
$mode = "create";
$file = "php_exists_file.txt";

if (file_exists($file)) {
    unlink($file);
}

if ($mode === "create") {
    file_put_contents($file, "ready");
} elseif ($mode === "empty") {
    file_put_contents($file, "");
}

$exists = file_exists($file) ? "yes" : "no";
$size = file_exists($file) ? filesize($file) : 0;

if (file_exists($file)) {
    unlink($file);
}

echo "mode=" . $mode . "\n";
echo "exists=" . $exists . "\n";
echo "size=" . $size . "\n";
<?php
$mode = "skip";
$file = "php_exists_file.txt";

if (file_exists($file)) {
    unlink($file);
}

if ($mode === "create") {
    file_put_contents($file, "ready");
} elseif ($mode === "empty") {
    file_put_contents($file, "");
}

$exists = file_exists($file) ? "yes" : "no";
$size = file_exists($file) ? filesize($file) : 0;

if (file_exists($file)) {
    unlink($file);
}

echo "mode=" . $mode . "\n";
echo "exists=" . $exists . "\n";
echo "size=" . $size . "\n";
<?php
$mode = "empty";
$file = "php_exists_file.txt";

if (file_exists($file)) {
    unlink($file);
}

if ($mode === "create") {
    file_put_contents($file, "ready");
} elseif ($mode === "empty") {
    file_put_contents($file, "");
}

$exists = file_exists($file) ? "yes" : "no";
$size = file_exists($file) ? filesize($file) : 0;

if (file_exists($file)) {
    unlink($file);
}

echo "mode=" . $mode . "\n";
echo "exists=" . $exists . "\n";
echo "size=" . $size . "\n";
  1. $mode ← create, $file ← php_exists_file.txt

    1<?php2$mode→ create = "create"; //@mode="skip", "empty"3$file→ php_exists_file.txt = "php_exists_file.txt";
  2. if ($mode === "create")

    9if ($modecreate === "create") {10    file_put_contents($filephp_exists_file.txt, "ready");11} elseif ($mode === "empty") {
  3. $exists ← yes, $size ← 5

    15$exists→ yes = file_exists($filephp_exists_file.txt) ? "yes" : "no";16$size→ 5 = file_exists($filephp_exists_file.txt) ? filesize($file) : 0;
  4. if (file_exists($file))

    18if (file_exists($filephp_exists_file.txt)) {19    unlink($filephp_exists_file.txt);20}
  5. echo "mode=" . $mode . " ";

    22echo "mode=" . $modecreate . "\n";23echo "exists=" . $existsyes . "\n";24echo "size=" . $size5 . "\n";
    outputmode=create
    exists=yes
    size=5
  1. $mode ← skip, $file ← php_exists_file.txt, $exists ← no, $size ← 0

    1<?php2$mode→ skip = "skip";3$file→ php_exists_file.txt = "php_exists_file.txt";45if (file_exists($file)) {6    unlink($file);7}89if ($mode === "create") {10    file_put_contents($file, "ready");11} elseif ($mode === "empty") {12    file_put_contents($file, "");13}1415$exists→ no = file_exists($filephp_exists_file.txt) ? "yes" : "no";16$size→ 0 = file_exists($filephp_exists_file.txt) ? filesize($file) : 0;1718if (file_exists($file)) {19    unlink($file);20}2122echo "mode=" . $modeskip . "\n";23echo "exists=" . $existsno . "\n";24echo "size=" . $size0 . "\n";
    outputmode=skip
    exists=no
    size=0
  1. $mode ← empty, $file ← php_exists_file.txt, $exists ← yes, $size ← 0

    1<?php2$mode→ empty = "empty";3$file→ php_exists_file.txt = "php_exists_file.txt";45if (file_exists($file)) {6    unlink($file);7}89if ($mode === "create") {10    file_put_contents($file, "ready");11} elseif ($mode === "empty") {12    file_put_contents($filephp_exists_file.txt, "");13}1415$exists→ yes = file_exists($filephp_exists_file.txt) ? "yes" : "no";16$size→ 0 = file_exists($filephp_exists_file.txt) ? filesize($file) : 0;
  2. if (file_exists($file))

    18if (file_exists($filephp_exists_file.txt)) {19    unlink($filephp_exists_file.txt);20}
  3. echo "mode=" . $mode . " ";

    22echo "mode=" . $modeempty . "\n";23echo "exists=" . $existsyes . "\n";24echo "size=" . $size0 . "\n";
    outputmode=empty
    exists=yes
    size=0