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