Есть ли способ преобразовать целое число в строку в PHP?
Преобразование целого числа в строку в PHP
Ответ 1
Вы можете использовать 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";
Ответ 2
Есть много способов сделать это.
Два примера:
$str = (string) $int;
$str = "$int";
Подробнее см. Руководство по PHP Типы жонглирования.
Ответ 3
$foo = 5;
$foo = $foo . "";
now $foo
- это строка.
Но вы можете захотеть привыкнуть к кастингу. Поскольку литье - это правильный способ выполнить что-то в этом роде.
$foo = 5;
$foo = (string)$foo;
Другим способом является инкапсуляция в кавычки:
$foo = 5;
$foo = "$foo"
Ответ 4
Существует несколько способов "преобразовать" целое число в строку в 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";
Я бы не рекомендовал окончательный вариант, но я видел код в дикой природе, который полагался на это поведение, поэтому подумал, что пройду его.
Ответ 5
Все эти ответы велики, но все они возвращают вам пустую строку, если значение равно нулю.
Попробуйте следующее:
$v = 0;
$s = (string)$v : (string)$v ? "0";
Ответ 6
$intValue = 1;
$string = sprintf('%d',$intValue );
или это может быть:
$string = (string)$intValue ;
или:
settype(&$intValue ,'string');
Ответ 7
Существует много возможных способов преобразования:
$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123
Ответ 8
Вы можете либо использовать оператор периода, либо объединить в него строку (и это будет тип, приведённый к строке):
$integer = 93;
$stringedInt = $integer."";
Или, вернее, вы можете просто набрать целое число в строку:
$integer = 93;
$stringedInt = (string) $integer;
Ответ 9
Я бы сказал, это зависит от контекста. strval() или может использоваться оператор кастинга (строка), однако в большинстве случаев PHP решит, что для вас полезно, если для например, вы используете его с echo или printf... Одна маленькая заметка: die() нуждается в строке и не будет отображать int:)
Ответ 10
Поскольку ответы здесь хорошо демонстрируются, да, есть несколько способов. Однако в PHP вам редко приходится это делать. "Догматический путь" для написания PHP заключается в том, чтобы полагаться на языковую систему набора текста, которая будет прозрачно принуждать тип по мере необходимости. Для целых значений это обычно бывает без проблем. Однако вы должны быть очень осторожны с значениями с плавающей запятой.
Ответ 11
Вы можете просто использовать следующее:
$intVal = 5;
$strVal = trim($intVal);
Ответ 12
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount);
Таким образом, эхо будет возвращать строку
Ответ 13
$integer = 93;
$stringedInt = $integer.'';
быстрее, чем
$integer = 93;
$stringedInt = $integer."";