php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #69339 realpath(false) returns CWD
Submitted: 2015-03-31 09:04 UTC Modified: 2018-10-06 11:57 UTC
Votes:1
Avg. Score:4.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: sebastian@php.net Assigned: cmb (profile)
Status: Closed Package: Filesystem function related
PHP Version: 5.6.7 OS: Linux
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem:
41 - 7 = ?
Subscribe to this entry?

 
 [2015-03-31 09:04 UTC] sebastian@php.net
Description:
------------
realpath(false) returns the CWD. This is the behavior that the manual describes for blank or NULL values: "Whilst a path must be supplied, the value can be blank or NULL In these cases, the value is interpreted as the current directory."

Either this is a bug in PHP or the documented needs to be amended.



Test script:
---------------
<?php
var_dump(realpath(false));
var_dump(realpath(true));
var_dump(realpath(0));
var_dump(realpath(null));
var_dump(realpath(''));


Expected result:
----------------
bool(false)
bool(false)
bool(false)
string(8) "/home/sb"
string(8) "/home/sb"


Actual result:
--------------
string(8) "/home/sb"
bool(false)
bool(false)
string(8) "/home/sb"
string(8) "/home/sb"


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2015-03-31 10:52 UTC] cmb@php.net
Having a look at the implementation of realpath[1], there is
nothing special with the arguments '' or NULL happening. Actually,
realpath expects a string, so other argument types will be juggled
to string, and an empty string is treated as relative path.

That's seems to be pretty fine, so I'm changing to "Documentation
Problem". However, I'm not sure that it makes sense to document
special cases such as NULL and FALSE(or even
simplexml_load_string('<foo></foo>')).

[1] <http://lxr.php.net/xref/PHP_5_6/ext/standard/file.c#2306>
 [2015-03-31 10:53 UTC] cmb@php.net
-Type: Bug +Type: Documentation Problem
 [2018-10-06 11:56 UTC] cmb@php.net
Automatic comment from SVN on behalf of cmb
Revision: http://svn.php.net/viewvc/?view=revision&amp;revision=345785
Log: Fix #69339: realpath(false) returns CWD

There is nothing special with realpath() regarding type juggling,
so there's no need to mention that NULL can be passed instead of
an empty string.  That even wouldn't work for strict_types.
 [2018-10-06 11:57 UTC] cmb@php.net
-Status: Open +Status: Closed -Assigned To: +Assigned To: cmb
 [2018-10-06 11:57 UTC] cmb@php.net
This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation better.
 [2020-02-07 06:05 UTC] phpdocbot@php.net
Automatic comment on behalf of cmb
Revision: http://git.php.net/?p=doc/en.git;a=commit;h=b82236707bd00f096d557cd6f33e13bfccb97ea0
Log: Fix #69339: realpath(false) returns CWD
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Apr 20 04:01:28 2024 UTC