2014-09-02 63 views
-1

當我使用下面的代碼將一個字符串附加到一個文件時,它什麼都不做,只能追加一個零。PHP沒有寫入文件。只需追加一個0(零)

我可以保證,cookie設置正確爲我所用的,如果條件檢查,然後我這個寫的福樂:

$file = 'leaderboard.txt'; 
$txt = "" + $_COOKIE["user"] + "\n"; 
file_put_contents($file, $txt, FILE_APPEND | LOCK_EX); 

我想這也:

$myfile2 = fopen("leaderboard.txt", "a") or die("Unable to open file!"); 
$txt = "" + $_COOKIE["user"] + "\n"; 
fwrite($myfile2, $txt); 

沒有任何方法可以將0附加到文件中。

+1

將所有'+'改爲'.' – 2014-09-02 17:32:12

+0

我應該在哪裏更改...? – PRP 2014-09-02 17:32:46

+0

'$ txt =「」。 $ _COOKIE [「user」]。 「\ n」;' – 2014-09-02 17:33:04

回答

2

爲了理解0輸出,你必須認識到,PHP的隱式類型轉換可能會導致奇怪的意外行爲。由於您使用的是數學運算符,即+,而不是字符串連接運算符.,所有字符串都被轉換爲一個數字,在您的情況下,該數字始終爲零,而不是拋出錯誤。

但只是爲了好玩嘗試

echo 5 + "3 beers" 

這將導致8,作爲字符串轉換爲整數三人。

2

使用

$file='leaderboard.txt'; 
$txt=$_COOKIE["user"] . "\n"; 
file_put_contents($file, $txt, FILE_APPEND | LOCK_EX); 

+是加法和.用於級聯。