2016-09-27 3 views
-1

Ich bin neu in Laravel und ich habe diese Frage. Ich habe versucht, diese Codezeile aus und es funktioniert gut: return redirect("/cards/{$note->id}");Setzen Sie eine Variable in eine Zeichenfolge PHP

Aber wann immer ich versuche, die einfachen Anführungszeichen zu verwenden, funktioniert es nicht: return redirect('/cards/{$note->id}');

Wie kann ich dieses Problem lösen?

+0

Verwenden Sie "/ cards /". $ note-> id' – Karthi

+1

nichts zu tun mit laravel seine grundlegenden php Zeug single quote vs doppelte Anführungszeichen –

+0

Ich bin neu und ich dachte, als Laravel könnte es eigene Art, diese Dinge zu tun haben – Prince

Antwort

3

Was Sie tun, erste Variable Interpolation oder String-Interpolation genannt wird. Sie können mehr darüber lesen here, on PHP docs und here, on Wiki.

Es ist eine Funktion in PHP, die es Ihnen ermöglicht, eine Zeichenfolge zu übergeben und Variable/Platzhalter innerhalb interpretiert zu haben.

In Ihrem zweiten Beispiel, das Sie einfache Anführungszeichen verwenden, die diese Funktion nicht zur Verfügung stellen, damit Sie es brechen müssen und die Variable manuell hinzufügen die Zeichenfolge:

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

Wenn Sie daran interessiert sind, eine aufwendigere Erklärung und die Leistung dahinter, dann können Sie mehr auf this answer here von Blizz

lesen Er kommt zu dem Schluss, dass:

haupt Wer den Test gemacht hat, kam zu dem Schluss, dass die Verwendung von einfachen Anführungszeichen geringfügig besser ist. Am Ende führen einfache Anführungszeichen nur zu einer Verkettung, während doppelte Anführungszeichen den Interpreter zwingen, die vollständige Zeichenkette nach Variablen zu analysieren.

Allerdings ist die zusätzliche Last bei den letzten PHP-Versionen so gering, dass die Schlussfolgerung meistens darin liegt, dass es nicht wirklich wichtig ist.

0

Benutzen Sie es wie folgt aus:

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

mit entweder einfachen oder doppelten Anführungszeichen

2

sollten Sie verwenden "/cards/{$note->id}" oder '/cards/'.$note->id

Die wichtigste Eigenschaft von Strings in doppelten Anführungszeichen ist die Tatsache, Diese Variablennamen werden erweitert.

Wenn ein String in doppelten Anführungszeichen oder mit heredoc angegeben wird, werden Variablen darin analysiert.

Von PHP documentation

+0

Die geschweiften Klammern sind Teil der String-Interpolation , und sollte nicht in der Zeichenfolge mit nur einem Anführungszeichen enthalten sein. –

Verwandte Themen