Как посчитать несколько переменных с помощью strlen - PullRequest
0 голосов
/ 31 мая 2019

Я хочу посчитать длину строк в нескольких переменных и сложить их вместе, чтобы получить общее количество.

Я пытался strlen, но либо испортил синтаксис, либо не использовал правильный код.

//$_SESSION['var1'] and $_SESSION['var2'] will each be numbers from -30.0 to 1000.0. I need the lengths of the two variables to be added. I need the negative sign(s) and decimal separators, or dots, to be counted.

$_SESSION['var_array'] = $_SESSION['var1'].$_SESSION['var2'];
$_SESSION['var_count'] = strlen($_SESSION['var_array']);

или

$_SESSION['var_count'] = strlen($_SESSION['var1'])+strlen($_SESSION['var2']);

Наблюдаются разные результаты. Иногда правильное число наблюдается, но обычно нет.

1 Ответ

0 голосов
/ 31 мая 2019

Проблема в том, что простое хранение числовых значений не поддерживает конечные десятичные дроби, если они равны 0. Вы можете альтернативно хранить их как строки, которые будут сохранять значения в точности так, как вы хотите, или форматировать числа, чтобы гарантировать, что они содержат правильные формат. Следующий код показывает, что я имею в виду ...

$_SESSION['var1'] = -30.0;
echo $_SESSION['var1'].PHP_EOL; // Gives -30

$_SESSION['var1'] = number_format($_SESSION['var1'], 1);
echo $_SESSION['var1'].PHP_EOL;  // gives -30.0

$_SESSION['var2'] = "1000.0";
echo $_SESSION['var1'].PHP_EOL;  // gives 1000.0

$_SESSION['var_array'] = $_SESSION['var1'].$_SESSION['var2'];
echo strlen($_SESSION['var_array']);  // gives 11
...