PHP is_numeric обработка ошибок, если значение не установлено

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

from concurrent.futures import ProcessPoolExecutor

# Warning: this does not terminate function if timeout
def timeout_five(fnc, *args, **kwargs):
    with ProcessPoolExecutor() as p:
        f = p.submit(fnc, *args, **kwargs)
        return f.result(timeout=5)

Супер просто читать и поддерживать.

Мы создаем пул, отправляем один процесс, а затем дождаемся до 5 секунд, прежде чем поднимать TimeoutError, который вы могли бы поймать и обработать, но вам нужно.

Родной для python 3.2+ и backported до 2.7 (

Переключение между потоками и процессами так же просто, как замена ProcessPoolExecutor на ThreadPoolExecutor.

Если вы хотите завершить процесс по таймауту, я бы предложил посмотреть в Pebble .

-4
задан fightstarr20 15 January 2019 в 09:44
поделиться

3 ответа

, чтобы избежать предупреждения, вы должны сделать что-то подобное

if(isset($args['myargs']['custom_value'])) {
  if (is_numeric($args['myargs']['custom_value'])) {
      echo 'Yes';
  } else {
      echo 'No';
  }
}
0
ответ дан rvandoni 15 January 2019 в 09:44
поделиться

Что происходит

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

Решение

Функция isset проверит, определен ли ключ массива.

//You must first of all test isset and then is_numeric,
// else you still get the error. Research 'short circuiting' in php 
if ( isset($args['myargs']['custom_value']) && is_numeric($args['myargs']['custom_value'])) {
    echo 'Yes';
} else {
    echo 'No';
}

Это решение также выведет «Нет», если ключ массива никогда не определялся.

0
ответ дан Ben Hillier 15 January 2019 в 09:44
поделиться

также вы можете

error_reporting(0) 

в начале php файла

0
ответ дан 关炳秋 15 January 2019 в 09:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: