php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #31424 Make mode optional on mkdir
Submitted: 2005-01-06 03:07 UTC Modified: 2020-10-27 10:23 UTC
From: aidan@php.net Assigned: cmb (profile)
Status: Closed Package: Directory function related
PHP Version: 5CVS-2005-01-06 (dev) OS:
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: aidan@php.net
New email:
PHP Version: OS:

 

 [2005-01-06 03:07 UTC] aidan@php.net
Description:
------------
As all but the first parameter of mkdir are optional and non sequential, it makes sense to be able to pass NULL to each if a later param is required.

E.g. mkdir('some/path/foobar', null, true);

Reproduce code:
---------------
This patch adds this functionality:
http://rafb.net/paste/results/0QWc5F15.html


Included in the report:

--- \repository\php-src\ext\standard\file.1.395.c	Mon Dec 13 10:21:53 2004
+++ \repository\php-src\ext\standard\file.c	Thu Jan 06 12:29:41 2005
@@ -1372,7 +1372,7 @@
 	char *dir;
 	php_stream_context *context;
 
-	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|lbr", &dir, &dir_len, &mode, &recursive, &zcontext) == FAILURE) {
+	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|!lbr", &dir, &dir_len, &mode, &recursive, &zcontext) == FAILURE) {
 		RETURN_FALSE;
 	}


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2018-03-10 13:55 UTC] cmb@php.net
-Package: Feature/Change Request +Package: Directory function related
 [2018-03-10 13:55 UTC] cmb@php.net
I fail to see why `NULL` would be preferable to the more explicit
`0777` here.  IMHO: won't fix.
 [2020-10-27 10:23 UTC] cmb@php.net
-Status: Open +Status: Closed -Assigned To: +Assigned To: cmb
 [2020-10-27 10:23 UTC] cmb@php.net
As of PHP 8.0.0 you can use named arguments[1], what seems to be a
good alternative to your suggestion.  If you still feel that there
should be a way to skip default parameters without using named
arguments, please raise that on the internals mailing list[2],
since this would need discussion and an RFC[3].

[1] <https://3v4l.org/AEP76>
[2] <https://www.php.net/mailing-lists.php#internals>
[3] <https://wiki.php.net/rfc/howto>
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Tue Jul 01 21:01:35 2025 UTC