Машиносчитываемая контрольная цифра паспорта

В PHP я пытаюсь сопоставить вторую строку (содержащую дату рождения) с заданной датой рождения. Различные элементы строки, я дал разные входные данные, поэтому нет необходимости разбивать число на части.

Мой вопрос, действительно, для даты рождения есть контрольная цифра, которая проверяет дату рождения с помощью формулы.

Как я могу проверить контрольную цифру с помощью PHP?

Как работает контрольная цифра
Машиночитаемые паспорта — Википедия

[РЕДАКТИРОВАТЬ]

Я создал некоторый код, который должен работать. По какой-то причине он всегда возвращает истину.

<?php

//Set variables for passport number and the corresponding check digit
$passportnumber = "123456789";
$checkdigit= "7";

//Set variables for each character of the passport number
$ppnumber1 = substr($passportnumber,0,1);
$ppnumber2 = substr($passportnumber,1,1);
$ppnumber3 = substr($passportnumber,2,1);
$ppnumber4 = substr($passportnumber,3,1);
$ppnumber5 = substr($passportnumber,4,1);
$ppnumber6 = substr($passportnumber,5,1);
$ppnumber7 = substr($passportnumber,6,1);
$ppnumber8 = substr($passportnumber,7,1);
$ppnumber9 = substr($passportnumber,8,1);//Check the passport number has been set properly
echo "Passport number is
$ppnumber1$ppnumber2$ppnumber3$ppnumber4$ppnumber5$ppnumber6$ppnumber7$ppnumber8$ppnumber9";

$formula = ($ppnumber1*7) + ($ppnumber2*3) + ($ppnumber3*1) + ($ppnumber4*7) + ($ppnumber5*3) + ($ppnumber6*1) + ($ppnumber7*7) + ($ppnumber8*3) + ($ppnumber9*1);

$checker = $formula % 10;

if ($checker = $checkdigit){
echo "True";
} else{
echo "False";
}

?>

0

Решение

Я понял, что мне нужно == вместо =. Затем код работал как ожидалось.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]