Ich bin kein Experte für die Programmierung von PHP, aber ich bin etwas verwirrt, warum ich in PHP Code sehe, dessen Zeichenfolge in einfache und manchmal doppelte Anführungszeichen gesetzt ist.
Ich weiß nur in .NET oder der C-Sprache, ob es ein einfaches Anführungszeichen ist, das heißt, es handelt sich um ein Zeichen und nicht um eine Zeichenfolge.
PHP-Strings können nicht nur auf zwei Arten angegeben werden, sondern auch auf vier Möglichkeiten.
\'
und einen Backslash \\
( Also ja, auch Strings in einfachen Anführungszeichen werden analysiert ).$type
und Sie, was Sie echo "The $types are"
sollen. Dadurch wird nach der Variablen $types
gesucht. Um dies zu umgehen, verwenden Sie echo "The {$type}s are"
Sie können die linke Klammer vor oder nach dem Dollarzeichen setzen. Schauen Sie sich String-Analyse an, um zu sehen, wie Array-Variablen und dergleichen verwendet werden.<<<
. Nach diesem Operator wird eine Kennung und anschließend ein Zeilenumbruch angegeben. Die Zeichenfolge selbst folgt und dann derselbe Bezeichner, um das Zitat zu schließen. Sie müssen Anführungszeichen in dieser Syntax nicht entziehen.<<<
Sequenz identifiziert, die für Heredocs verwendet wird, aber der folgende Bezeichner ist in einfachen Anführungszeichen eingeschlossen, z. <<<'EOT'
. In nowdoc wird kein Parsing durchgeführt. Geschwindigkeit:
Ich würde nicht zu viel Wert darauf legen, dass einfache Anführungszeichen schneller sind als doppelte Anführungszeichen. Sie sind wahrscheinlich in bestimmten Situationen schneller. Hier ist ein Artikel in dem erklärt wird, wie einfache und doppelte Anführungszeichen seit PHP 4.3 im Wesentlichen gleich schnell sind (Useless Optimizations
nach unten, Abschnitt C
). Auch diese Benchmark-Seite bietet einen Vergleich zwischen einfachen und doppelten Anführungszeichen. Die meisten Vergleiche sind gleich. Es gibt einen Vergleich, bei dem doppelte Anführungszeichen langsamer sind als einfache Anführungszeichen.
Dinge werden in doppelten Anführungszeichen bewertet, aber nicht in einfachen Anführungszeichen:
$s = "dollars";
echo 'This costs a lot of $s.'; // This costs a lot of $s.
echo "This costs a lot of $s."; // This costs a lot of dollars.
'
Einfach zitiertDie einfachste Möglichkeit, eine Zeichenfolge anzugeben, besteht darin, sie in einfache Anführungszeichen zu setzen. Einfache Anführungszeichen sind in der Regel schneller und alles, was in Anführungszeichen steht, wird als einfache Zeichenfolge behandelt.
Beispiel:
echo 'Start with a simple string';
echo 'String\'s apostrophe';
echo 'String with a php variable'.$name;
"
AnführungszeichenVerwenden Sie doppelte Anführungszeichen in PHP, um den Punkt nicht zum Trennen von Code verwenden zu müssen (Hinweis: Verwenden Sie geschweifte Klammern {}
, um Variablen einzuschließen, wenn Sie keine Verkettung verwenden möchten (.
) Operator) in Zeichenfolge.
Beispiel:
echo "Start with a simple string";
echo "String's apostrophe";
echo "String with a php variable {$name}";
Ja. Es ist etwas schneller, einfache Anführungszeichen zu verwenden.
PHP verwendet keine zusätzliche Verarbeitung, um zu interpretieren, was im einfachen Anführungszeichen enthalten ist. Wenn Sie doppelte Anführungszeichen verwenden, muss PHP parsen, um zu überprüfen, ob Variablen in der Zeichenfolge enthalten sind.
Eine Zeichenfolge mit einfachen Anführungszeichen enthält keine interpretierten Variablen. Eine doppelte Anführungszeichen-Zeichenfolge.
Eine Zeichenfolge mit doppelten Anführungszeichen kann Apostrophe ohne umgekehrte Schrägstriche enthalten, während eine Zeichenfolge mit einem einfachen Anführungszeichen nicht verdeckte Anführungszeichen enthält.
Die Zeichenfolgen mit einfachen Anführungszeichen sind zur Laufzeit schneller, da sie nicht analysiert werden müssen.
In PHP sind sowohl 'my name'
als auch "my name"
eine Zeichenfolge. Sie können mehr darüber lesen im Handbuch PHP .
Was Sie wissen sollten, sind
$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'
In PHP verwenden Leute ein einfaches Anführungszeichen, um eine konstante Zeichenfolge wie 'a'
, 'my name'
, 'abc xyz'
zu definieren, während doppelte Anführungszeichen verwendet werden, um einen String zu definieren, der einen Bezeichner wie "a $b $c $d"
enthält.
Und anderes ist,
echo 'my name';
ist schneller als
echo "my name";
aber
echo 'my ' . $a;
ist langsamer als
echo "my $a";
Dies trifft für andere Zeichenfolgen zu.
<?php
$fname = "David";
// Single quotes
echo 'My name is $fname.'; // My name is $fname.
// Double quotes
echo "My name is $fname."; // My name is David.
// Curly braces to isolate the name of the variable
echo "My name is {$fname}."; // My name is David.
// Example of heredoc
echo $foo = <<<abc
My name is {$fname}
abc;
// Example of nowdoc
echo <<< 'abc'
My name is "$name".
Now, I am printing some
abc;
?>
In PHP wird einfacher Anführungszeichen-Text als Zeichenfolgenwert betrachtet, und bei Anführungszeichen werden die Variablen durch Ersetzen und Verarbeiten ihres Wertes analysiert.
$test = "variable";
echo "Hello Mr $test"; // the output would be: Hello Mr variable
echo 'Hello Mr $test'; // the output would be: Hello Mr $test
In diesem Fall wird der Wert in Anführungszeichen gesetzt, und der einfache Anführungsstrich wird als Zeichenfolgenwert betrachtet (ohne die $ test-Variable zu analysieren.)
Beide Arten von eingeschlossenen Zeichen sind Zeichenfolgen. Eine Art von Angebot wird praktischerweise verwendet, um die andere Art von Angebot einzuschließen. "'"
und '"'
. Der größte Unterschied zwischen den Anführungszeichenarten besteht darin, dass eingeschlossene Bezeichnerreferenzen in doppelte Anführungszeichen gesetzt werden, nicht jedoch in einfache Anführungszeichen.
Vielleicht bin ich ein bisschen spät und ein wenig abseits, aber hier ist es trotzdem…
Sie müssen sich nicht für den Inhalt Ihrer Zeichenfolge entscheiden:alert("It's \"game\" time.");
oder alert('It\'s "game" time.');
Stattdessen können Sie wie folgt eingeben und dann doppelte oder einfache Anführungszeichen verwenden, da dies keine Rolle spielt:alert("It’s “game” time.");
und alert('It’s “game” time.');