Приведите строку к целому числу в переполнении стека

Я пытался преобразовать строку в int в PHP для работы с ней, но PHP продолжает интерпретировать его как 0.

var_dump ($Pux); // output: string (6) "89"

Я пробовал несколько способов, как

(int) $Pux,
intval($Pux)
settype($Pux, "integer")

Но все они дают мне 0 вместо 89.

Как это должно быть сделано?

1

Решение

Там нет проблем, если вы не ставите пробелы между $ а также varname и присвойте результат приведения переменной.

<?php
$Pux = "89";
var_dump ($Pux);
$t = (int)$Pux;
var_dump ($t);
?>

Выход =

string(2) "89"int(89)
1

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

Самый простой способ преобразовать строку в число: —

<?php
$Pux = "89"; // Or any other number
$Num = (int) $pux;
?>

Если вы по-прежнему получаете ноль, то перед числом могут быть какие-то странные невидимые символы. Чтобы проверить это:

echo «($ Pux)»;

0

Вы можете преобразовать строку в целое число двумя способами:

Приведение типов или же
Интервальная функция

<?php
$pux = "89";
var_dump($pux);
$pux = (int) $pux;
var_dump($pux);
$pux = "89";
$pux =  intval($pux);
var_dump($pux);
?>
0

Код ниже удаляет нечисловые символы:

function numeric( $st_data )
{
$st_data = preg_replace("([[:punct:]]|[[:alpha:]]| )",'',$st_data);
return $st_data;
}
0

Как 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);

а затем преобразовать в целое число.

Благодарю.

0

У меня была такая же ошибка.
Действительно, когда я сделал var_dump ($ myvar).
он возвращает строку (2) «89», и когда я сделал все функции приведения, он вернул мне 0.
Я ищу и, наконец, ответ на этой странице.
Итак, я делюсь с вами тем, что я узнал.
Вы просто должны сделать регулярное выражение PHP: $ myvar = preg_replace («/ [^ 0-9,.]», «», $ myvar). Он удаляет все не числа в вашей строке (в моем случае строку (2)).

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector