2016-11-07 3 views
1

Так я этот код, который присваивает различные переменные в зависимости от того, существует ли файл или нет:PHP - Вырваться из, если заявление

$progress_file_path = './data/progress.txt'; 

if (file_exists($progress_file_path) && count($scanned) > 0) { 
    $scanned = file($progress_file_path); 
    $last = end($scanned); 
    $end = $limit + count($scanned); 
} 
else { 
    $last = 'unset'; 
    $end = $limit; 
} 

, но мне нужно сделать больше с этим, мне нужно, чтобы убедиться, файл содержит контент. Я делаю чек в условном, как это:

if (file_exists($progress_file_path) && count(file($scanned)) > 0) 

, так как переменная $scanned не было еще определено. Поэтому идеальным решением было бы, если бы я мог выйти из оператора if и перейти к части условного выражения else.

Что-то вроде этого:

$progress_file_path = './data/progress.txt'; 

if (file_exists($progress_file_path)) { 
    $scanned = file($progress_file_path); 

    if (count($scanned) > 0) { break; } 

    $last = end($scanned); 
    $end = $limit + count($scanned); 

}I 
else { 
    $last = 'unset'; 
    $end = $limit; 
} 

, но это не работает, вы не можете сломать или продолжить из, если заявление. Я думал, возможно, используя goto, чтобы перейти в часть условного, но я сомневаюсь, что это сработает. Есть ли способ перейти к другой части условного типа?

+0

'$ progress_file_path =» ./data/ progress.txt '; if (file_exists ($ progress_file_path)) { $ scanned = file ($ progress_file_path); if (count ($ scan)> 0) { \t $ last = 'unset'; \t $ end = $ limit; } else { \t \t $ last = end ($ scanned); \t $ end = $ limit + count ($ scanned); } } ' –

+0

Поддержка SelfDecode проверяет ответы и помещает их как принятый ответ. Вы можете также голосовать за других, если они полезны в будущем. Спасибо –

ответ

1

Refining Anant ответить

$progress_file_path = './data/progress.txt'; 
$last = 'unset'; 
$end = $limit; 
if (file_exists($progress_file_path)) { 
    $scanned = file($progress_file_path); 
    if (count($scanned) < 0) { 
     $last = end($scanned); 
     $end = $limit + count($scanned); 
    } 
} 
1

Вы можете попытаться проверить оба ваших условий в одном, если заявление, чтобы иметь по крайней мере один другого, как этот

$progress_file_path = './data/progress.txt'; 

if (file_exists($progress_file_path) && count(file($progress_file_path)) > 0) { 
    $scanned = file($progress_file_path); 

    $last = end($scanned); 
    $end = $limit + count($scanned); 
} else { 
    $last = 'unset'; 
    $end = $limit; 
} 
+0

Но если файл $ progress_file_path (progress.txt) не существует, то он дает мне предупреждение или ошибку, когда я пытаюсь открыть его с файлом () –

+0

Правильно, но он не должен проверять его, если файл не существует. Если файл не существует, первое условие if - false, и оно переходит в другое – DestinatioN

Смежные вопросы