PHPで整数を文字列に変換する

2009年06月24日に質問されました。  ·  閲覧回数 1.3M回  ·  ソース

kman99 picture
2009年06月24日

PHPで整数を文字列に変換する方法はありますか?

回答

Chris Thompson picture
2009年06月24日
812

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

// The two examples above have the same end value...
// ... And so do the two below

// Explicit cast 
$items = (string)$var; // $items === "5";

// Function call
$items = strval($var); // $items === "5";
Sanjay Sheth picture
2009年06月24日
94

これを行うには多くの方法があります。

2つの例:

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

詳細については、タイプジャグリングに関するPHPマニュアルを参照してください。

Sev picture
2009年06月24日
45
$foo = 5;

$foo = $foo . "";

これで、 $fooは文字列になります。

しかし、あなたはキャスティングに慣れたいと思うかもしれません。 キャストはその種の何かを達成するための適切な方法であるため:

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

別の方法は、引用符で囲むことです。

$foo = 5;
$foo = "$foo"
Alan Storm picture
2009年06月24日
10

PHPで整数を文字列に「変換」する方法はいくつかあります。

従来のコンピュータサイエンスの方法は、変数を文字列としてキャストすることです。

$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";

最後のオプションはお勧めしませんが、この動作に依存するコードを実際に見たことがあるので、それを渡すと思いました。

Microprocessor Cat picture
2015年04月11日
9

これらの答えはすべて素晴らしいですが、値がゼロの場合はすべて空の文字列を返します。

次のことを試してください。

    $v = 0;

    $s = (string)$v ? (string)$v : "0";
gewel picture
2013年02月06日
7

使用する:

$intValue = 1;
$string = sprintf('%d', $intValue);

または、次のようになります。

$string = (string)$intValue;

または:

settype(&$intValue, 'string');
Andrew Dunkman picture
2009年06月24日
4

ピリオド演算子を使用して文字列を連結することができます(文字列に型キャストされます)。

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

または、より正確には、整数を文字列に型キャストするだけです。

$integer = 93;
$stringedInt = (string) $integer;
UserBSS1 picture
2013年03月27日
4

多くの可能な変換方法があります:

$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123
troelskn picture
2009年06月24日
1

ここでの答えがうまく示しているように、はい、いくつかの方法があります。 ただし、PHPでは、実際にそれを行う必要はめったにありません。 PHPを書くための「独断的な方法」は、言語の緩い型付けシステムに依存することです。これにより、必要に応じて型が透過的に強制されます。 整数値の場合、これは通常問題ありません。 ただし、浮動小数点値には十分注意する必要があります。

merkuro picture
2009年06月24日
0

文脈次第だと思います。 strval ()またはキャスト演算子(string)を使用できます。 ただし、ほとんどの場合、PHPは、たとえば、echoまたはprintfで使用する場合に何が適切かを判断します...

1つの小さな注意:die()には文字列が必要であり、intは表示されません:)