2014-10-08 152 views
-2

之間有什麼區別:分配給變量在PHP

$recipient = $query_row['email']; 

$recipient = '[email protected]'; 

其中$ query_row [「電子郵件」]從一個MySQL查詢工作,並可以返回的值得到迴應。

當進入一個功能,他們的行爲完全不同。

$formproc->AddRecipient($recipient); 

當我使用查詢返回值時,它不起作用,但在我使用電子郵件地址寫入時工作正常。 注:$ query_row [ '電子郵件']相同[email protected]

print_r($query_row['email']); 

回報:[email protected]

var_dump($query_row['email']); 

回報:字符串(16)「我的@例子.com「

當我使用$ recipient ='[email protected]';當我使用其他方法時,電子郵件發送到[email protected],電子郵件未發送。

謝謝。

+1

請顯示完整的代碼。 – mochalygin 2014-10-08 06:57:49

+0

返回的值可能是否有額外的空格?或者,確保它是一個字符串。 – tvgemert 2014-10-08 06:58:40

+0

使用'print_r()'或'var_dump()'打印返回值以查看確切的數組結構和值 – Arun 2014-10-08 06:59:46

回答

2

兩者沒有任何區別,都將值分配給$recipient

唯一的區別是$query_row['email'];似乎是,您從數據庫中提取,其中$recipient = '[email protected]';您正在分配直接。

注:確保在$query_row['email']具有價值,它像​​

+0

由於PHP的特定工作與參考數組有關,所以在罕見的ocasion中可能會有所不同。 – mochalygin 2014-10-08 06:58:29

0

$ query_row一個字符串值[ '電子郵件']必須不等於 '[email protected]' 或$ formproc-> AddRecipient( $收件人)將返回相同的東西。在調用函數之前對操作數進行求值。

爲了給你一個更完整的答案,我們需要看看剩下的代碼,特別是$ query_row ['email']來自哪裏。

+0

當我做 - echo $收件人= $ query_row ['電子郵件']; - 但我在瀏覽器中找回[email protected]。 – Guage 2014-10-08 07:02:06

1

$recipient可以是一個字符串或整數,而$query_row['email']是一個數組,價值email屬於所謂$query_row

0

你能一次用這個

$收件人=「'」。$ query_row試陣['電子郵件']。」'」;

$ formproc-> AddRecipient($ recipient);

看看它的工作與否

+0

給了它一個鏡頭,以及嘗試用引號和撇號一些改動,但仍然沒有。 – Guage 2014-10-08 07:25:12

+0

嗨,一旦使用這個正常的PHP郵件功能,看看郵件是否發送或我沒有使用過,我收到了郵件.. $ usersquery = mysql_query(「select * from users」); $ row = mysql_fetch_array($ usersquery,MYSQL_BOTH); $到= $行[ '電子郵件']; mail($ to,「test」,「test」); – Choco 2014-10-08 08:55:53

+0

使用$ to = $ query_row ['email']; mail($ to,「test」,「test」);並檢查它的工作與否。 – Choco 2014-10-08 08:57:13