PHP - 是否可以通过 try/catch 测试 array_map('unlink', glob('/folder/my_files--*.txt')) 命令?

问题描述 投票:0回答:1

我想测试一下函数 array_map('unlink', glob('...*.txt')) 是否没有遇到错误: 例如:

try { 
  array_map('unlink', glob('/folder/my_files--*.txt'));
} 
catch (\Exception $e) {
  echo 'Caught exception: ',  $e->getMessage(), "\n";
}

您认为这段代码有效吗? 感谢您的反馈!

php unlink array-map
1个回答
0
投票

不,这些函数都不会抛出异常,因此这段代码不会捕获任何异常。

unlink
返回
true
false
,因此
array_map
的结果将是
true
和/或
false
值的数组,并且您需要测试数组中的所有值是否都是
true
了解所有
unlink
操作是否成功。

对于这种操作,

array_reduce
实际上是更好的选择,因为它允许您在迭代时将结果减少到单个值:

$result = array_reduce(glob('...'), fn($res, $file) => unlink($file) && $res, true);

if (!$result) {
    echo 'Something didn't get deleted!';
}
© www.soinside.com 2019 - 2024. All rights reserved.