pathinfo('')返回空数组或false,因其仅解析字符串结构而空字符串无任何路径成分;实测var_dump(pathinfo(''))输出array(0) {},指定PATHINFO_EXTENSION时返回false,表明函数拒绝为非法输入伪造数据。

当你用pathinfo()处理一个空字符串时,函数根本无法从中提取任何路径组成部分,所以返回空值或空数组是它唯一能做的合理响应。
pathinfo处理空字符串的底层逻辑
pathinfo()是一个纯字符串解析函数,它不访问文件系统,也不做任何假设——它只对输入字符串做结构拆分。空字符串没有目录、没有文件名、没有扩展名,连最基本的路径结构都不存在。
此时函数不会抛出警告或错误,而是安静地返回空结果:若未指定flags,返回空数组;若指定了PATHINFO_EXTENSION等单个flag,返回false或空字符串。
验证空字符串行为的实操步骤
第一步:在PHP脚本中写入以下代码并执行:
<?php var_dump(pathinfo('')); ?>
第二步:观察输出——你将看到array(0) { },即一个不含任何键的空数组。
第三步:再测试带flags的情况:var_dump(pathinfo('', PATHINFO_EXTENSION)); → 返回bool(false)。
这说明函数在面对无结构输入时,拒绝伪造数据,【空字符串不是“合法路径”】,它不做默认填充或猜测。
容易混淆的相似情况对比
方法一:点开头的文件名(如.env)会被识别为扩展名,filename为空,但整个输入非空,pathinfo仍能返回部分结构。
方法二:结尾带点的路径(如/path/file.)extension返回空字符串"",而非false——这是有结构但扩展名为空,和空字符串有本质区别。
注意:不要把pathinfo('')和pathinfo('/path/')混为一谈,后者会正确返回dirname和basename,因为斜杠构成了路径层级结构。


















