BUG removeRequiredField() should use array_splice() instead of unset()

Function unset() preserves numeric keys and method removeRequiredField() will give a PHP notice about nonexistent array key and loop won't iterate throughout all elements in array on second method call (and all subsequent).
So it's better to use foreach loop and array_splice() function (it doesn't preserve numeric keys).
This commit is contained in:
uniun 2012-12-18 11:57:11 +02:00
parent d5a1c3d99a
commit 6aba24b3e9

View File

@ -112,9 +112,9 @@ class RequiredFields extends Validator {
}
public function removeRequiredField($field) {
for($i=0; $i<count($this->required); $i++) {
if($field == $this->required[$i]) {
unset($this->required[$i]);
foreach ($this->required as $i => $required) {
if ($field == $required) {
array_splice($this->required, $i);
}
}
}