嗨,我在尝试将其输出到正确的条件时遇到了麻烦,但现在,当我输出for each语句时,它会提示进入else语句,而不是if语句。它成功地输出了目录中的文件,但我就是无法获得具有匹配文件名的字符串,即使该字符串与之匹配。我的当前输出将是here2
。当我检查$fullPSPath
中的输出时,它将是空的。
if(strpos($var, "TL")!== false){
foreach($dirIL as $file1){
if(strpos( $file1 , $pattern) !== false){
$res = $filePath .'IL\\' . $file1;
return $res;
} else{
$fullPSPath = "PS File Not Found";
//return $fullPSPath;
return "here2"; //keeps returning this despite having a matching file name.
}
}
} else {
foreach($dirUL as $file2){
if(strpos($file2, $pattern) !== false){
$res = $filePath .'UL\\' . $file2;
//return $res;
return "here3";
} else{
$res = "PS File Not Found";
//return $res;
return "here4";
}
}
1条答案
按热度按时间blmhpbnm1#
问题很可能是
else
部件对每个文件都运行。所以它总是从你检查的第一个文件返回。你应该只在没有匹配的文件时返回else
部件。你也可以通过使用一个变量来检查文件名而不是2个循环来减少多余的代码。