kivagant/amatch

关联数组的验证和匹配

2.0 2014-09-01 14:44 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:34:36 UTC


README

验证关联数组

Habrahabr 示例

请查看 'examples' 文件夹中的示例。

这是使用示例的简短演示

<?

$params_bad = array(
    'doc_id' => -4,
    'subject_id' => null,
    'parent_id' => 30,
    'data' => array(
        'flag' => 'booom',
        'from_topic' => array(),
        'old_property' => true,
    ),
    'wtf_param' => 'exploit',
);
$match = AMatch::runMatch($params_bad)
    ->doc_id(0, '<') // Left value is smaller then array value
    ->subject_id(0, '!=') // Array value != zero
    ->subject_id('', '!float') // Array value is not float
    ->author_name(AMatch::OPTIONAL, 'string') // String type or not defined
    ->author_name('Guest') // Array value equal 'Guest'
    ->parent_id(AMatch::OPTIONAL, 'int') // Int type or not defined
    ->parent_id(0, '<') // Left value is smaller than array value
    ->parent_id(array(32, 33), 'in_left_array') // Array value exists in this array
    ->data('', 'array') // Type of array value is 'array'
    ->data('', '!empty') // Array value not empty
    ->data('old_property', '!key_exists') // Array does not have this key
    ->data('experiment', 'in_array') // In array value must be another array with value 'experiment'
    ->title() // This key must exist
    ;
if ($match->stopMatch()) {
	echo 'Victory!';
} else {
	var_export($match->matchComments());
}

?>