casting — возвращает ноль при преобразовании строки в целое число в переполнении стека

Когда я хочу преобразовать числовую строковую переменную в целое число в php, возвращаемое значение равно нулю. Я использовал все способы, чтобы преобразовать это! такие как: (int), (integer), intval (), settype (), eval () и т. д. — все они возвращают ноль!

var_dump($myVariable) печатает следующее:

string(4) "۲۹"

0

Решение

Другая распространенная ошибка — попытка привести строковую переменную, которая содержит числа, но начинается с нуля, т.е.

string(5) " 358"

Чтобы решить эту проблему, я использовал санитарный номер filter_var INT, выполняя это:

$myVariable = filter_var($myVariable, FILTER_SANITIZE_NUMBER_INT);
2

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

Я нашел это! перед преобразованием строки в целое число я должен преобразовать арабское число в английский, используя эту функцию:

function convert($string) {
$persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$num = range(0, 9);
return str_replace($persian, $num, $string);
}

Теперь я могу преобразовать это!
спасибо от кингкеро.

1