@Anton1863

Почему число не хочет преобразовываться в строку?

Почему при явном указании числа с плавающей точкой вроде 1.5461 нормально преобразуются в строку, а числа вроде 1.0000 остаются числом, вот пример кода:
$start = (string)($recieve['result'][0]['start']);
			    $arr_text_two[$start] = array(
			    	'text' => $recieve['text'],
			    	'speaker_id' => 2
			    );


Здесь переменная $start служит индексом для массива, я задаю ей явное преобразование в строку, но на выходе для некоторых чисел все равно не получаю строку для индекса. Кто знает, в чем может быть причина?
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Это интересный вопрос, одна из неочевидностей РНР, впрочем, документированная

Дополнительно с ключом key будут сделаны следующие преобразования:

  • Строки (string), содержащие целое число (int) (исключая случаи, когда число предваряется знаком +) будут преобразованы к типу int. Например, ключ со значением "8" будет в действительности сохранён со значением 8. С другой стороны, значение "08" не будет преобразовано, так как оно не является корректным десятичным целым.


В свое время я очень крепко налетел на этом преобразовании. тоже думал, что строки кладу ключами...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 11:22
10000 руб./за проект
27 апр. 2024, в 10:46
1000 руб./в час
27 апр. 2024, в 10:42
20000 руб./за проект