Я пытался преобразовать строку в int в PHP для работы с ней, но PHP продолжает интерпретировать его как 0.
var_dump ($Pux); // output: string (6) "89"
Я пробовал несколько способов, как
(int) $Pux,
intval($Pux)
settype($Pux, "integer")
Но все они дают мне 0 вместо 89.
Как это должно быть сделано?
Там нет проблем, если вы не ставите пробелы между $
а также varname
и присвойте результат приведения переменной.
<?php
$Pux = "89";
var_dump ($Pux);
$t = (int)$Pux;
var_dump ($t);
?>
Выход =
string(2) "89"int(89)
Самый простой способ преобразовать строку в число: —
<?php
$Pux = "89"; // Or any other number
$Num = (int) $pux;
?>
Если вы по-прежнему получаете ноль, то перед числом могут быть какие-то странные невидимые символы. Чтобы проверить это:
echo «($ Pux)»;
Вы можете преобразовать строку в целое число двумя способами:
Приведение типов или же
Интервальная функция
<?php
$pux = "89";
var_dump($pux);
$pux = (int) $pux;
var_dump($pux);
$pux = "89";
$pux = intval($pux);
var_dump($pux);
?>
Код ниже удаляет нечисловые символы:
function numeric( $st_data )
{
$st_data = preg_replace("([[:punct:]]|[[:alpha:]]| )",'',$st_data);
return $st_data;
}
Как var_dump($Pux);
выходы string(6) "89"
(не string(2)
), это означает, что ваша строка содержит 6 символ, Я думаю, что они 4 одинарные скобки (')
а также 89
, Поэтому попробуйте удалить скобки из вашей строки:
$Pux = str_replace("'", '', $Pux);
или удалите двойные скобки тоже (для безопасности)
$Pux = strtr($Pux, array("'" => '', '"' => ''));
РЕДАКТИРОВАНИЕ
будет хорошо удалить все нечисловые значения:
$Pux = preg_replace("/[^0-9,.]/", "", $Pux);
а затем преобразовать в целое число.
Благодарю.
У меня была такая же ошибка.
Действительно, когда я сделал var_dump ($ myvar).
он возвращает строку (2) «89», и когда я сделал все функции приведения, он вернул мне 0.
Я ищу и, наконец, ответ на этой странице.
Итак, я делюсь с вами тем, что я узнал.
Вы просто должны сделать регулярное выражение PHP: $ myvar = preg_replace («/ [^ 0-9,.]», «», $ myvar). Он удаляет все не числа в вашей строке (в моем случае строку (2)).