2009-06-23 11 views
368

有沒有辦法將整數轉換爲PHP中的字符串?將整數轉換爲PHP中的字符串

+7

PHP是弱類型。什麼是一個整數,也可以是一個字符串,例如當你'回聲'它(用於所謂的*字符串上下文*)。 – hakre 2012-06-14 15:01:20

+2

@hakre是的php是鬆散類型的,回顯會在字符串上下文中打印值。但是這並不會在內部改變變量的數據類型。因此,strval($變量)是正確的。 – 2015-08-31 11:06:11

+0

@Vivek:`strval()`不會在內部更改`$ variable`。 – hakre 2015-08-31 13:00:51

回答

559

您可以使用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"; 
35
$foo = 5; 

$foo = $foo . ""; 

現在$foo是一個字符串。

但是,您可能想要習慣鑄造。鑄造是完成此類事情的正確方法。

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

另一種方式是在引號封裝:

$foo = 5; 
$foo = "$foo" 
+0

非常奇怪,我們都選擇了5.另外,+是java。 – karim79 2009-06-23 22:40:08

+0

哇。同意。並且,謝謝;) – Sev 2009-06-23 22:40:52

+0

我認爲你在這裏的語言之間混合了你的連接語法。 – jason 2009-06-23 22:40:55

75

有很多方法可以做到這一點。

兩個例子:

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

參見Types Juggling PHP手冊更多。

3

您可以使用週期操作和將字符串給它(這將是類型澆鑄爲字符串):

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

或者,更準確地說,你可以只輸入轉換爲整數字符串:

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

我會說這取決於上下文。 strval()或鑄造操作符(字符串)可以使用,但在大多數情況下,PHP會決定什麼是對你有好處的,例如,如果你使用echo或printf ...一個小注:die()需要一個字符串,將不會顯示任何int :)

8

有很多方法可以將整數轉換爲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"; 

我不會推薦的最後一個選項,但我已經看到了,在這個行爲依賴野生代碼,所以以爲我一起傳遞。

0

由於這裏的答案很好地說明了,是的,有幾種方法。但是,在PHP中,你很少需要這樣做。編寫PHP的「教條式」方式是依賴於該語言的寬鬆輸入系統,它會根據需要透明地強制類型。對於整數值,這通常沒有問題。不過,你應該非常小心浮點值。

-4
$integer = 93; 
$stringedInt = $integer.''; 

快於

$integer = 93; 
$stringedInt = $integer.""; 
5
$intValue = 1; 
$string = sprintf('%d',$intValue); 

,或者它可能是:

$string = (string)$intValue ; 

或:

settype(&$intValue ,'string'); 
4

有許多可能的CONV ersion的方式:

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

所有這些答案都很好,但它們都返回一個空字符串,如果該值爲零。

嘗試以下操作:

$v = 0; 

$s = (string)$v : (string)$v ? "0"; 
0

你可以簡單地使用以下方法:

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