PHP - Функция проверки, возвращающая истину | ложь, И сообщение, если ложь

У меня есть функция проверки, которая возвращает либо true , либо false .
Однако я хочу, чтобы он предоставил информацию о , в чем проблема , когда она есть.

Допустим, функция выглядит так:

function is_valid($val) {
  $result = true;
  if( rule_1_not_met ) $result = false;
  if( rule_2_not_met ) $result = false;
  return $result;
}

Которая используется так

$val = $_GET['some_param'];
if(!is_valid($val)) $out .= 'Not so helpful feedback.';
...

Я думал Я мог бы изменить это так:

function is_valid($val) {
  $result = array(true, array());
  if( rule_1_not_met ) $result[1][] = 'Reason 1';
  if( rule_2_not_met ) $result[1][] = 'Reason 2';
  if(count($result[1]) > 0) $result[0] = false;
  return $result;
}

И использовать это так:

$val = $_GET['some_param'];
$validation_result = is_valid($val);
if(!$validation_result[0]) $out .= implode('<br/>', $validation_result[1]);
...

Мой вопрос:

  • Могу ли я получить неожиданные результаты с этим?
  • Есть ли лучшие способы добиться этого?

PS Сделал бы это сообщество вики

7
задан Majid Fouladpour 23 April 2011 в 15:35
поделиться