Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung von einfachen und doppelten Anführungszeichen in PHP

Verwendung von einfachen und doppelten Anführungszeichen in PHP

angryTom
angryTomOriginal
2019-08-22 09:47:139670Durchsuche

Verwendung von einfachen und doppelten Anführungszeichen in PHP

Bei vielen Codes werden manchmal einfache Anführungszeichen oder doppelte Anführungszeichen verwendet, um den Inhalt von Zeichenfolgen zu enthalten. Eine einfache Zusammenfassung besteht darin, dass Variablen in doppelten Anführungszeichen analysiert werden können, und einfache Anführungszeichen sind es auch absolute Zeichenfolgen. Lassen Sie mich es Ihnen im Folgenden ausführlich vorstellen.

Empfohlenes Tutorial: PHP-Video-Tutorial

1. Definieren Sie die Zeichenfolge

In PHP kann die Definition einer Zeichenfolge einfache oder doppelte Anführungszeichen verwenden. Zur Definition der Zeichenfolge müssen jedoch dieselben einfachen oder doppelten Anführungszeichen verwendet werden. Beispielsweise sind „Hallo“ und „Hallo“ unzulässige Zeichenfolgendefinitionen. ​

Beim Definieren einer Zeichenfolge wird nur eine Art von Anführungszeichen als Trennzeichen berücksichtigt, nämlich einfache Anführungszeichen oder doppelte Anführungszeichen. Wenn also eine Zeichenfolge mit einem doppelten Anführungszeichen beginnt, wird nur das doppelte Anführungszeichen vom Parser analysiert. Auf diese Weise können Sie jedes andere Zeichen, sogar einfache Anführungszeichen, in die Zeichenfolge mit doppelten Anführungszeichen einfügen. Die folgenden Anführungszeichenzeichenfolgen sind zulässig:

$s = "I am a 'single quote string' inside a double quote string"; 
$s = 'I am a "double quote string" inside a single quote string'; 
$s = "I am a 'single quote string' inside a double quote string"; 
$s = 'I am a "double quote string" inside a single quote string';   

und die Zeichenfolge „Warum funktioniert „das“ nicht?“ wird in drei Absätze unterteilt. Wenn Sie in dieser Zeichenfolge doppelte Anführungszeichen verwenden möchten, können Sie das Escape-Zeichen „“ (Backslash) verwenden, um „Warum funktioniert „das“ nicht?“ zu ersetzen.

2. Einfache und doppelte Anführungszeichen in Zeichenfolgenvariablen

PHP ermöglicht es uns, Zeichenfolgenvariablen direkt in doppelte Anführungszeichen einzufügen Ich habe festgestellt, dass die Verarbeitungsergebnisse der beiden folgenden Zeichenfolgen gleich sind.

$full_name = $first_name . ' ' . $last_name; 
$full_name = "$first_name $last_name";  

Zeichenfolgen mit einfachen Anführungszeichen und Zeichenfolgen mit doppelten Anführungszeichen werden in PHP unterschiedlich verarbeitet. Der Inhalt einer Zeichenfolge in doppelten Anführungszeichen kann interpretiert und ersetzt werden, während der Inhalt einer Zeichenfolge in einfachen Anführungszeichen immer als gewöhnliche Zeichen betrachtet wird. Zum Beispiel:

$foo = 2; 
echo "foo is $foo"; // 打印结果: foo is 2 
echo 'foo is $foo'; // 打印结果: foo is $foo 
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行) 
echo 'foo is $foo\n'; // 打印结果: foo is $foo\n 
$foo = 2; 
echo "foo is $foo"; // 打印结果: foo is 2 
echo 'foo is $foo'; // 打印结果: foo is $foo 
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行) 
echo 'foo is $foo\n'; // 打印结果: foo is $foo\n   

Wie Sie sehen können, verliert sogar der Backslash innerhalb einer Zeichenfolge mit einfachen Anführungszeichen seine erweiterte Bedeutung (mit Ausnahme der Einfügung eines Backslashs \ und der Einfügung eines einfachen Anführungszeichens '). Daher sollten Sie doppelte Anführungszeichen verwenden, wenn Sie eine Variablenersetzung durchführen und Escape-Sequenzen wie n (Newline) in eine Zeichenfolge einfügen möchten. Die Verarbeitungsgeschwindigkeit bei der Verwendung von einfachen Anführungszeichen in Skripten ist schneller, da der PHP-Parser einfache Anführungszeichen auf relativ einfache Weise verarbeitet, während die Verarbeitung von doppelten Anführungszeichen auch innerhalb des Skripts analysiert werden muss Die Zeichenfolge ist daher komplexer und daher etwas langsamer in der Verarbeitung.

Beim Verweisen auf komplexe Kombinationen von Variablen in Zeichenfolgen können einige Probleme auftreten. Der folgende Code funktioniert normal:

echo "value = $foo"; 
echo "value = $a[$i]"; 
echo "value = $foo"; 
echo "value = $a[$i]";   

Der folgende Code liefert jedoch nicht die gewünschten Ergebnisse:

echo "value = $a[$i][$j]"; //我们希望打印二维数组$a的某个元素。   

Um potenzielle Probleme bei der Verwendung dieser Zeichenfolgen zu vermeiden, trennen wir normalerweise komplexe Variablen von Zeichenfolgen, wie folgt:

echo 'value = ' . $a[$i][$j];//字符串的连接用点(.)

Eine andere Möglichkeit besteht darin, komplexe Variablen in geschweifte Klammern zu trennen, damit der Syntaxanalysator sie korrekt erkennt:

echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素   

3. In der SQL-Anweisung

Dies ist häufig der Fall. Das aufgetretene Problem besteht darin, dass die in die Datenbank eingefügte SQL-Anweisung Single verwendet Anführungszeichen zum Definieren der Zeichenfolge Wenn eine Zeichenfolge mit einfachen Anführungszeichen in die Datenbank eingefügt wird, geht die SQL-Anweisung fehl.

Zum Beispiel:

$sql="insert into userinfo (username,password) Values('O'Kefee','123456')"  

Zu diesem Zeitpunkt besteht eine der Verarbeitungsmethoden darin, den Escape-Zeichen-Backslash in die SQL-Anweisung einzufügen,

, das heißt:...Values('O'Kefee', ……  

  Natürlich können Sie auch die Funktion addslashes() verwenden. Die Funktion dieser Funktion besteht darin, Escape-Zeichen hinzuzufügen,

, also:

$s = addslashes("O'Kefee") ……Values('".$s."',……   

Eine andere Möglichkeit besteht darin, die Option „Magic-Quotes“ in INI festzulegen. Wenn diese Option aktiviert ist und die über das Formular übermittelten Informationen einfache Anführungszeichen enthalten, werden automatisch Escape-Zeichen hinzugefügt. Es besteht also keine Notwendigkeit, andere Funktionen zu verwenden.

Ergänzung: Dies beginnt mit der Rolle von doppelten Anführungszeichen und einfachen Anführungszeichen: Die Felder in doppelten Anführungszeichen werden vom Compiler interpretiert und dann als HTML-Code ausgegeben, die Felder in einfachen Anführungszeichen müssen jedoch nicht interpretiert werden , direkt ausgegeben.

Zum Beispiel:

$abc='I love u'; 
echo $abc //结果是:I love u 
echo '$abc' //结果是:$abc 
echo "$abc" //结果是:I love u

Daher sollten beim Zuweisen von Werten zu SQL-Anweisungen in der Datenbank diese auch in doppelten Anführungszeichen verwendet werden SQL="select a,b,c from.. ." Aber die SQL-Anweisung Der Feldname wird in einfache Anführungszeichen gesetzt

Zum Beispiel:

select * from table where user='abc';

Die SQL-Anweisung hier kann direkt als SQL="select * from table where user='abc'" 

geschrieben werden Aber wenn es wie folgt aussieht:

$user='abc'; 
SQL1="select * from table where user=' ".$user." ' ";对比一下 
SQL2="select * from table where user=' abc ' "

Ich habe zwischen den einfachen und doppelten Anführungszeichen etwas mehr Platz eingefügt, ich hoffe, Sie können es klarer erkennen.

Das heißt, ersetzen Sie „abc“ durch „“.$user.“ alles in einem einzigen Anführungszeichen. Teilen Sie einfach die gesamte SQL-Zeichenfolge auf. SQL1 kann in die folgenden 3 Teile zerlegt werden

1: "select * from table where user=' "

2: $user

3: " ' "

Verwenden Sie , um Zeichenfolgen zu verbinden, damit Sie es verstehen.

Das obige ist der detaillierte Inhalt vonVerwendung von einfachen und doppelten Anführungszeichen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn