-1

如何重构此代码,以便我只有 1 行用于分配 $filename 值。

$i = 1;
$filename = $config->PHOTO_PATH . $list->ID . "_" . $i . ".jpg"
while(file_exists($filename)) 
{
    doSomething();
    $i++;
    $filename = $config->PHOTO_PATH . $list->ID . "_" . $i . ".jpg";
}
4

4 回答 4

1
$i = 1;

$ok=true;
while($ok) 
{
    $filename = $config->PHOTO_PATH . $list->ID . "_" . $i++ . ".jpg";
    $ok=file_exists($filename)
    if ($ok){
       doSomething();
    }
}
于 2013-03-24T16:43:51.270 回答
1
$filename = 'prefix' .
            (preg_replace('/prefix([0-9]+)suffix/', '$1', array_pop(glob('prefix*suffix'))) + 1) .
            'suffix';
于 2013-03-24T17:01:57.893 回答
0
$i = 1;
do {
    doSomething();
    $filename = sprintf('%s%s_%d.jpg', $config->PHOTO_PATH, $list->ID, $i++);
} while (file_exists($filename));
于 2013-03-24T16:44:54.093 回答
0

只需替换以下代码:

$i++;
$filename = $config->PHOTO_PATH . $list->ID . "_" . $i . ".jpg";

对于这个:

$filename = $config->PHOTO_PATH . $list->ID . "_" . ++$i . ".jpg";
于 2013-03-24T16:42:05.317 回答