我有一个验证函数,返回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]); ...
我的问题是
>我在,因为这个出乎意料的结果?
>有没有更好的方法来实现这一目标?
附:会使这个社区维基
你是在正确的轨道,但我想这样做
原文链接:https://www.f2er.com/php/135374.htmlfunction is_valid($val,&$mes) { $result = true; if( rule_1_not_met ) { $mes[]='message one'; $result = false; } if( rule_2_not_met ) { $mes[]='Message two'; $result = false; } return $result; } $mes=array(); if(isvalid($val,$mes) ===false) $out .= implode('<br/>',$mes);