使用file_exists条件缩短if语句

时间:2014-04-12 08:24:48

标签: php if-statement

我怎样才能缩短这个if语句?

if(file_exists($path1) 
   || file_exists($path2) 
   || file_exists($path3) 
   || file_exists($path4)
  )

3 个答案:

答案 0 :(得分:4)

如果将所有文件放在数组中,则可以将函数映射到该数组。您可以使用array_product找到所有值是否为真:

$path = Array("path/file1.php","path/file2.php","path/file3.php","path/file4.php");
$check = array_product(array_map("file_exists",$path));

我误读了,我以为你想检查所有文件是否存在,进行以下更改以确保至少存在1个:

$check = array_sum(array_map("file_exists",$path));

答案 1 :(得分:1)

如果您有大量路径(N号),那么您可以使用此代码

$ARR_PATHS  = array($path1, $path2, $path3, .......... , $pathN);

$process = false;
foreach($ARR_PATHS as $path)
{
    if(file_exists($path))
    {
       $process = true;
       break;
    } 
}

if($process)
{
     // continue your code if any one of the path is exists
}

以上代码并不短于if语句。当你有N个路径或动态生成的路径(N是动态的)时,它会很有用。

答案 2 :(得分:0)

如果你想要检查很多路径,你可能想要使用带数组的循环。

for($i=0;$i<count($path);$i++
  if(file_exists($path[$i]))
     //do something.. 

除此之外我不认为你可以缩短声明或其条件,除非你想删除一些路径检查。