2011-03-18 48 views
0
$this->get_name = mysqli_fetch_assoc(mysqli_query($this->link,"SELECT complete_name FROM student WHERE email='$this->email'")); 

mysqli_query($this->link, $this->drop_query) or die(mysql_error()); 

echo $this->get_name['complete_name']. " has been marked as Left!"; 

當我運行此我得到如下:PHP的回聲問題

「!約翰已被標記爲左」

但是當我運行

echo ".$this->get_name['complete_name'] has been marked as Left!"; 

我得到這個:

「!數組[ 'complete_name']已被標記爲左」

是不是應該打印相同的東西?

回答

3

PHP:■解析器犯規知道變量在第二種情況下結束,使用{}封裝變量字符串

echo "{$this->get_name['complete_name']} has been marked as Left!"; 
+0

沒錯。不帶大括號的變量替換僅考慮作爲標識符的一部分有效的字符。使用大括號明確分隔替換。 – tdammers 2011-03-18 15:53:25

+0

Docu:http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing.complex – 2011-03-18 15:54:56

1

中如果你想要得到的數組offset使用:

{$this->get_name['complete_name']} 

括號的使用告訴PHP,如果可能的話,期望整個遏制被用作變量。

查看PHP's String Parsing瞭解更多詳情。作爲他們的部分實例他們有這樣的例子:

// Works, quoted keys only work using the curly brace syntax 
echo "This works: {$arr['key']}"; 
0

每當我回響着什麼比像$complete_name更復雜,我不包括在引號:

echo $this->get_name['complete_name'].' has been marked as Left!'; 

我找到便於閱讀的整體報價與對象和數組等處理所以,如果你正在尋找輕鬆讀取引述線時,一個句子反正輸了,我可能會建議使用:

$complete_name = $this->get_name['complete_name']; # deal with the dirty stuff here 

echo "$complete_name has been marked as left!";  # so this is much easier to read 
+0

你不應該這樣做。通過使用雙引號和連接,您可以使PHP雙重工作。如果你打算這樣做,總是使用單引號字符串。 – 2011-03-18 15:58:32

+0

凱文好。我已經做了更新。 – 2011-03-18 16:00:43