Преобразование целого числа в строку в PHP

Есть ли способ преобразовать целое число в строку в PHP?

Вы можете использовать strval() для преобразования числа в строку.

С точки зрения обслуживания его очевидное, что вы пытаетесь сделать, а не некоторые другие более эзотерические ответы. Конечно, это зависит от вашего контекста.

 $var = 5; // Inline variable parsing echo "I'd like {$var} waffles"; // = "I'd like 5 waffles // String concatenation echo "I'd like ".$var." waffles"; // I'd like 5 waffles // Explicit cast $items = (string)$var; // $items === "5"; // Function call $items = strval($var); // $items === "5"; 

Есть много способов сделать это.

Два примера:

  $str = (string) $int; $str = "$int"; 

Дополнительную информацию см. В Руководстве по ручным манипуляциям PHP.

 $foo = 5; $foo = $foo . ""; 

теперь $foo – это строка.

Но вы можете захотеть привыкнуть к кастингам. Поскольку кастинг – это правильный способ добиться чего-то подобного.

 $foo = 5; $foo = (string)$foo; 

Другой способ заключается в инкапсуляции в кавычки:

 $foo = 5; $foo = "$foo" 

Существует несколько способов «преобразовать» целое число в строку в PHP.

Традиционным способом CS было бы преобразование переменной в виде строки

 $int = 5; $int_as_string = (string) $int; echo $int . ' is a '. gettype($int) . "\n"; echo $int_as_string . ' is a '. gettype($int_as_string) . "\n"; 

Вы также можете использовать неявное преобразование типа PHP и интерполяцию строк

 $int = 5; echo $int . ' is a '. gettype($int) . "\n"; $int_as_string = "$int"; echo $int_as_string . ' is a '. gettype($int_as_string) . "\n"; $string_int = $int.''; echo $int_as_string . ' is a '. gettype($int_as_string) . "\n"; 

Наконец, аналогично вышесказанному, любая функция, которая принимает и возвращает строку, может быть использована для преобразования и целого. Рассмотрим следующее

 $int = 5; echo $int . ' is a '. gettype($int) . "\n"; $int_as_string = trim($int); echo $int_as_string . ' is a '. gettype($int_as_string) . "\n"; 

Я бы не рекомендовал окончательный вариант, но я видел код в дикой природе, который полагался на это поведение, поэтому подумал, что пройду его.

Все эти ответы велики, но все они возвращают вам пустую строку, если значение равно нулю.

Попробуйте следующее:

 $v = 0; $s = (string)$v : (string)$v ? "0"; 
 $intValue = 1; $string = sprintf('%d',$intValue ); 

или это может быть:

 $string = (string)$intValue ; 

или:

 settype(&$intValue ,'string'); 

Существует много возможных способов преобразования:

 $input => 123 sprintf('%d',$input) => 123 (string)$input => 123 strval($input) => 123 settype($input, "string") => 123 

Вы можете либо использовать оператор периода, либо конкатенировать ему строку (и она будет передана в строку строкой):

 $integer = 93; $stringedInt = $integer.""; 

Или, вернее, вы можете просто набрать целое число в строку:

 $integer = 93; $stringedInt = (string) $integer; 

Я бы сказал, что это зависит от контекста. strval () или оператор кастинга (строка), однако в большинстве случаев PHP решит, что хорошо для вас, если вы используете его с помощью echo или printf … Одна маленькая заметка: die () нуждается в строке и не будет отображаться int 🙂

Поскольку ответы здесь хорошо демонстрируются, да, есть несколько способов. Однако в PHP вам редко приходится это делать. «Догматический путь» для написания PHP заключается в том, чтобы полагаться на свободную систему набора текста, которая будет прозрачно принуждать тип по мере необходимости. Для целых значений это обычно бывает без проблем. Однако вы должны быть очень осторожны с значениями с плавающей запятой.

Вы можете просто использовать следующее:

 $intVal = 5; $strVal = trim($intVal); 
 $integer = 93; $stringedInt = $integer.''; 

быстрее, чем

 $integer = 93; $stringedInt = $integer."";