@Anton1863

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

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


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

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

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


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

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

Войти через центр авторизации
Похожие вопросы