从 .env 变量向 PHP 的 mkdir 添加八进制位

Adding octal bit to PHP's mkdir from .env variable

我有一个问题,当我尝试从 Laravel 中的 .env 文件加载权限字符串,然后当我尝试将它用作 [=11= 中的文件模式 arg 的 int 时] 它删除了八进制位 0,结果 mkdir 调用变得混乱:

mkdir($this->bakDir, 0755);

工作正常。

echo(\Config::get('app.dbBackupDirPerms')); echo(intval(\Config::get('app.dbBackupDirPerms')));

mkdir($this->bakDir, intval(\Config::get('app.dbBackupDirPerms')));

0755

755

Creates the directory but with the incorrect permissions

\Config::get('app.dbBackupDirPerms'); 作为字符串传递也没有出乎我的意料,我认为它不会被 mkdir

类型检查

这附近有什么东西吗,我是不是漏掉了什么? PHP 相对较新,但我想这一定是比较常见的事情。

您需要将整数转换为八进制

mkdir($this->bakDir, intval(\Config::get('app.dbBackupDirPerms'), 8 ));