{$field} = $data; } return $new_passport; } public function validateByr() { return !empty($this->byr) && is_numeric($this->byr) && $this->byr >= 1920 && $this->byr <= 2002; } public function validateIyr() { return !empty($this->iyr) && is_numeric($this->iyr) && $this->iyr >= 2010 && $this->iyr <= 2020; } public function validateEyr() { return !empty($this->eyr) && is_numeric($this->eyr) && $this->eyr >= 2020 && $this->eyr <= 2030; } public function validateHgt() { $value = substr($this->hgt, 0, -2); $unit = substr($this->hgt, -2); return !empty($this->hgt) && in_array($unit, ['in','cm']) && ($unit === 'cm' ? $value >= 150 && $value <= 193 : $value >= 59 && $value <= 76) ; } public function validateHcl() { return 1 === preg_match('/^#[0-9a-f]{6}$/', $this->hcl); } public function validateEcl() { return in_array($this->ecl, ['amb', 'blu', 'brn', 'gry', 'grn', 'hzl', 'oth'], true); } public function validatePid() { return 1 === preg_match('/^\d{9}$/', $this->pid); } public function validateCid() { return true; } public function isReallyValid() { if (!$this->isValid()) { // echo sprintf("invalide basiquement\n"); return false; } $vars = get_object_vars($this); foreach ($vars as $var_name => $var_value) { $method = sprintf('validate%s', ucfirst($var_name)); if (!$this->{$method}()) { return false; } } return true; } public function isValid() { return !empty($this->byr) && !empty($this->iyr) && !empty($this->eyr) && !empty($this->hgt) && !empty($this->hcl) && !empty($this->ecl) && !empty($this->pid); } }