2011-06-16 38 views
1

我非常新的PHP和我試圖在字符串中使用變量,這裏是我的代碼:如何在PHP中爲字符串使用變量?

<?php 
    $userName = $_GET['Username']; 
    $message = $_GET['Message']; 

    if($_POST['Submit']){ 
     $open = fopen("new.txt",'a'); 
     $text = "\n________________________________________"+$userName+":"+$message+"\n________________________________________"; 
     fwrite($open, $text); 
     fclose($open); 
     echo "File updated.<br />"; 
     echo "File:<br />"; 
     $file = file("new.txt"); 
     foreach($file as $text) { 
      echo $text."<br />"; 
     } 
    } 
?> 

而且,我會用「A」添加到文件?如果不是,我會用什麼?請幫助我,提前致謝!

回答

3

使用.代替+進行串接。

或者,你可以這樣做:

$text = "\n________________________________________$userName:$message\n________________________________________"; 

或(稍微清晰的解析器):

$text = "\n________________________________________{$userName}:{$message}\n________________________________________"; 
+2

就個人而言,我不喜歡的變量投入字符串,我總是建議使用「____」的顯式語法。 $ var。 「____」'就像代碼突出顯示的工作一樣... – 2011-06-16 21:01:24

+0

有時候將它們放在字符串中看起來好多了。優先事項。 – ceejayoz 2011-06-16 21:06:55

+1

@cassy:使用PHP感知的語法高亮編輯器,字符串內部的變量像拇指一樣突出顯示。就我個人而言,我更喜歡嵌入不必要浪費視覺空間與不必要的引號/連接操作符。 – 2011-06-16 21:23:18

1

$text = "\n___$userName:$message\n"會工作。還有$text = "whatever{$var}bar{$var2}"。 fopen的文檔可用here並且說'a':

僅供打印;將文件指針放在文件的末尾。

在這種情況下'a'通常表示'追加'。

+0

查看[markdown幫助頁面](http://stackoverflow.com/editing-help/)瞭解格式化指導。 :) – 2011-06-16 21:01:13

0
$text = "\n________________________________________".$userName.":".$message."\n________________________________________"; 

使用.爲concatination

a將追加到一個文件,你還是你要替換的內容,你會用w

+0

非常感謝 – Paluter 2011-06-16 21:01:37

2

我總是喜歡單引號(如果可能),因爲他們的速度更快:

$str = '5+5='.(5+5); 

此外,逗號用於回顯而不是串接原因更快:

echo '5+5=',(5+5); 

而且在非常複雜的字符串(如果不喜歡速度),也需要報價我使用變量來使事情看起來更清楚:

$dbq="\""; 
$sq='\''; 
echo $dbq,'This is in double quotes.',$dbq,'<br>'; 
echo $sq,'This is in single quotes.',$sq;