两种代码运行效果是一样的吧?

来源:2-7 文件读写函数封装

MosesVon

2018-02-09 17:08:52

$filename = 'a/1.txt';
//1
if(!is_dir($filename)){
	mkdir($filename,0777,true);
}
//2
$dirname = dirname($filename);
if(!file_exists($filename)){
	mkdir($dirname,0777,true);	
}


写回答

1回答

imooc_澈

2018-02-09

您好,不一样。is_dir是判断目标变量是否为目录,而file_exits是判断路径文件是否存在。

1 如果a目录本身就不存在的话,走第一段代码,会在a目录下创建一个名为1.txt的目录,而走第二段代码,只会创建一个a目录。

2 如果a目录存在的话,而2.txt是一个存在于a目录的文件的话,走第一段代码is_dir结果为false,执行里面的文件夹创建命令,但是已经存在了名为2.txt的文件,创建名为2.txt的目录就会报错。走第二段代码因为文件已经存在,file_exits结果为true,里面的if语句块不执行。

3 如果a目录存在,下面是一个2.txt的目录,效果一样。

您下来可以自己尝试验证一下。

如果解决了您的问题,请采纳,祝学习愉快~

0

0 学习 · 2569 问题

查看课程