PHP调用mkdir创建文件夹提示0755为未定义常量如何解决
问题原因
该问题不属于PHP配置问题,根源是你传入的权限数值0755前面存在不可见的空白字符,PHP无法将其识别为八进制整数,反而将其判定为未定义的常量标识符,因此触发警告。你贴出的报错信息里也能看到undefined constant和0755之间存在多余空格,也验证了这一点。
修复方案
- 直接删除
mkdir函数第二个参数位置的0755(带前导空格的版本),手动重新输入0755即可,确保数字前面没有任何空格、全角空白或者其他隐形字符。修改后的代码行如下:
if (!mkdir($invoices_folder_src, 0755, true)) die('Failed to create directories...');
- 如果你担心后续复制代码还会出现同类问题,也可以将权限值单独定义为变量,减少隐形字符的干扰:
$permissions = 0755; if (!mkdir($invoices_folder_src, $permissions, true)) die('Failed to create directories...');
补充说明
这类“数字被识别为未定义常量”的报错几乎都是复制粘贴代码时带入了隐形字符导致的,后续遇到同类问题可以优先检查对应数值前后是否存在多余的不可见字符即可。
内容的提问来源于stack exchange,提问作者Disu
相关产品推荐
相关产品推荐

