3v4l.org

run code in 300+ PHP versions simultaneously
<?php $rules = [ 'weekly_rate' => 'required, /^\d*\.\d+%?$/' ]; $_POST['weekly_rate'] = '0.012%'; function validate ($rule_bag, $input) { $flag = true; $error_bag = []; foreach ($rule_bag as $item => $rules){ $rules = is_array($rules) ? $rules : array_filter(explode(',', $rules)); foreach($rules as $rule){ $rule = trim($rule); switch(mb_strtolower(trim($rule))){ case 'required': { if (!isset($input[$item])) { $flag = false; !isset($error_bag[$item])?$error_bag[$item]=[]:null; $error_bag[$item][] = $rule; } break; } default: { if (isset($input[$item])){ try { if (!preg_match($rule, $input[$item])){ $flag = false; !isset($error_bag[$item])?$error_bag[$item]=[]:null; !isset($error_bag[$item]['regex'])?$error_bag[$item]['regex']=[]:null; $error_bag[$item]['regex'][] = $rule; } } catch(Exception $e){ echo $e->getMessage(); } } } } } } return $flag ? $flag : $error_bag; } var_dump(validate($rules,$_POST));
Output for git.master, git.master_jit, rfc.property-hooks
bool(true)

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
77.74 ms | 401 KiB | 8 Q