From:             alan at frostick dot com
Operating system: WIN32
PHP version:      4.3.1
PHP Bug Type:     Filesystem function related
Bug description:  file_exists returns TRUE when given a null filename

Filesystem function: file_exists() return value (PHP_VERSION='4.3.1',
PHP_OS='WIN32')

file_exists() returns TRUE if it is passed a null string or an undefined
variable.
e.g.    file_exists("");        // returns TRUE

Previously it always returned FALSE (at least it did in PHP3).

Is that a bug or a change of definition? If so it is undocumented. The
rsult is also inconsistent with that returned by is_file() in this case,
as my example below demonstrates.

I note this is a similar report to apparently "bogus" #19934. Perhaps this
will convince you?
Example script:
As given in Manual\function.file-exists.html (modified to demonstrate the
above fault):

<?php
$filename = '';

print "<BR>file_exists: ";
if (file_exists($filename)) {
    print "The file $filename exists";
} else {
    print "The file $filename does not exist";
}

print "<BR>is_file: ";
if (is_file($filename)) {
    print "The file $filename exists";
} else {
    print "The file $filename does not exist";
}

?>

Result is:
file_exists: The file exists
is_file: The file does not exist

I also tried it with unset($filename) instead of a null string assignment
in the above, and get the same result.

-- 
Edit bug report at http://bugs.php.net/?id=22398&edit=1
-- 
Try a CVS snapshot:         http://bugs.php.net/fix.php?id=22398&r=trysnapshot
Fixed in CVS:               http://bugs.php.net/fix.php?id=22398&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=22398&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=22398&r=needtrace
Try newer version:          http://bugs.php.net/fix.php?id=22398&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=22398&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=22398&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=22398&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=22398&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=22398&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=22398&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=22398&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=22398&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=22398&r=gnused

Reply via email to