2015-03-06 3 views
0

Я triyng, чтобы поймать ошибку таймаута, чтобы вывести пользователю некоторый чистый текст (например, «Извините, тайм-аут»). Так почему же этот пример:Обработка ошибок тайм-аута PHP

function shutdown() { 
    $a=error_get_last(); 
    if($a==null) 
     echo "No errors"; 
    else 
     print_r($a); 

} 
register_shutdown_function('shutdown'); 
ini_set('max_execution_time',1); 
sleep(3); 

выход no errors ?? Я в замешательстве. Here Этот пример выглядит полезным. Благодаря

+0

отлично работает для меня –

ответ

2

Попробуйте не использовать спящий режим(), кажется, работает, если причина тайм-аут является реальной работы:

Пример

function isPrime($num) { 
    if($num == 1) 
     return false; 
    if($num == 2) 
     return true; 
    if($num % 2 == 0) { 
     return false; 
    } 
    for($i = 3; $i <= ceil(sqrt($num)); $i = $i + 2) { 
     if($num % $i == 0) 
      return false; 
    } 
    return true; 
} 
function shutdown() 
{ 
    $a=error_get_last(); 
    if($a==null) 
     echo "No errors"; 
    else 
      print_r($a); 
} 
register_shutdown_function('shutdown'); 
ini_set('max_execution_time',1); 
$ps = 0; 
for ($i = 0; $i < 1000000; $i++) { 
    if (isPrime($i)){ 
     $ps++; 
    } 
} 
echo $ps; 
+0

кажется полезным для меня. Благодаря! – Daria

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