2016-09-27 111 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

大括号是字符串插值的一部分,根本不应该包含在单引号字符串中。 –

相关问题