2016-09-27 103 views
-1

我是Laravel的新手,我有這個問題。 我嘗試了這行代碼,它工作正常:return redirect("/cards/{$note->id}");把一個變量放在一個字符串中PHP

但是當過我嘗試使用單引號,這是行不通的:return redirect('/cards/{$note->id}');

我怎樣才能解決這個問題?

+0

使用''/ cards /'。 $ note-> id' – Karthi

+1

與laravel無關其基本的PHP的東西單引號與雙引號 –

+0

我是新的,我認爲比laravel可以有它自己的方式做這些事 – Prince

回答

3

你在做什麼首先是所謂的變量插值或字符串插值。你可以閱讀更多關於它here, on PHP docshere, on Wiki

這是PHP中的一項功能,允許您傳遞字符串並在變量/佔位符內部進行解釋。

在第二個例子中,你正在使用單引號,不提供此功能,所以你必須打破它和手動添加變量字符串:

return redirect('/cards/' . $note->id); 

如果您有興趣更詳盡的解釋和它背後的性能,那麼你可以通過Blizz

他總結閱讀更多關於this answer here是:

永遠誰做了測試,結論是使用單引號在性能方面略好一些。最後,單引號只會導致連接,而雙引號會強制解釋器解析變量的完整字符串。

然而,對PHP的最新版本而言,這樣做的額外負載是如此之小,以至於大多數時候的結論是它並不重要。

0

喜歡使用它:

return redirect('/cards/'. $note->id); 

採用單或雙引號

2

您應該使用"/cards/{$note->id}"'/cards/'.$note->id

雙引號字符串最重要的特徵是事實該變量名稱將被擴展。

當在雙引號或heredoc中指定字符串時,會在其中分析變量。

PHP documentation

+0

大括號是字符串插值的一部分,根本不應該包含在單引號字符串中。 –

相關問題