it-roy-ru.com

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

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

433
kman99

Вы можете использовать функцию 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";
674
Chris Thompson

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

Два примера:

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

Смотрите PHP Руководство по Типам Жонглирование для получения дополнительной информации.

79
Sanjay Sheth
$foo = 5;

$foo = $foo . "";

теперь $foo является строкой.

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

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

Другой способ - заключить в кавычки:

$foo = 5;
$foo = "$foo"
40
Sev

Есть несколько способов «преобразовать» целое число в строку в 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"; 

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

9
Alan Storm

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

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

$v = 0;

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

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

$string = (string)$intValue ; 

или же: 

settype(&$intValue ,'string');  
6
gewel

Есть много возможных способов конвертации:

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

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

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

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

$integer = 93;
$stringedInt = (string) $integer;
3
Andrew Dunkman
$amount = 2351.25;
$str_amount = "2351.25";

$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount);

Таким образом, эхо будет возвращаться строка

0
Kaushik Shrimali

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

0
merkuro

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

0
troelskn

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

$intVal = 5;
$strVal = trim($intVal);
0
Imam