検索
ホームページphp教程php手册PHP における単一引用符と二重引用符の違い、php は二重引用符を引用します

PHP における一重引用符と二重引用符の違い、php の二重引用符

1. 文字列の定義
PHP では、一重引用符を使用して文字列を定義できます。も使用できます。ただし、文字列を定義するには同じ一重引用符または二重引用符を使用する必要があります。たとえば、「He​​llo」と「Hello」は無効な文字列定義です。
文字列を定義する場合、区切り文字として考慮される引用符は一重引用符または二重引用符の 1 種類だけです。したがって、文字列が二重引用符で始まる場合は、二重引用符のみがパーサーによって解析されます。このようにして、二重引用符で囲まれた文字列内に他の文字 (一重引用符も含む) を含めることができます。次の引用符文字列は有効です:

Php コード

$s = "私は二重引用符文字列内の '一重引用符文字列';

$s = '私は一重引用符文字列の中の「二重引用符文字列」です';

$s = "私は二重引用符文字列の中の「一重引用符文字列」です"; I am a "double quote string" inside a single quote string';

そして、「なぜ "this" は機能しないのか?」という文字列は 3 つの段落に分かれます。この文字列で二重引用符を表現したい場合は、エスケープ文字「" (バックスラッシュ) を使用して、「なぜ "this" は機能しないのですか?」 のようにすることができます。

2. 文字列変数内の単一引用符と二重引用符

PHP では、二重引用符文字列の中に文字列変数を直接含めることができます。次の 2 つの文字列の処理結果が同じであることがわかります。 。

$full_name = $first_name . ' ' $last_name;

$full_name = "$first_name $last_name";

PHP の単一引用符文字列処理は同じではありません。二重引用符で囲まれた文字列の内容は解釈して置換できますが、一重引用符で囲まれた文字列の内容は常に通常の文字とみなされます。例:

Php コード

$foo = 2;

echo "foo is $foo" // 出力結果: foo は 2

echo 'foo is $foo'; // 結果を出力します: foo は $foo

echo "foo is $foon" // 結果を出力します: foo は 2 (改行あり)

echo ' foo は $foon'; // 結果を出力します: foo は $foon

$foo = 2;

echo "foo は $foo"; // 結果を出力します: foo は 2

echo 'foo is $foo'; // 出力結果: foo は $foo

echo "foo is $foon"; // 出力結果: foo は 2 (改行あり)

echo 'foo is $foon'; // 出力結果: foo is $foon

ご覧のとおり、一重引用符文字列内のバックスラッシュさえも拡張された意味を失っています (バックスラッシュ \ の挿入を除く)一重引用符 ') を挿入します。したがって、変数置換を実行し、文字列に n (改行) などのエスケープ シーケンスを含める場合は、二重引用符を使用する必要があります。一重引用符文字列は他の場所でも使用できます。スクリプト内で一重引用符文字列を使用すると、処理速度が速くなります。これは、PHP パーサーが一重引用符文字列を比較的単純な方法で処理する一方で、二重引用符の処理には文字列内の解析も必要となるためです。したがって、より複雑になり、処理が若干遅くなります。

文字列内の変数の複雑な組み合わせを参照する場合、いくつかの問題が発生する可能性があります。

Php コード

echo "value = $foo "; >
エコー "値 = $a[$i]";

エコー "値 = $foo";
>
次のコードでは、必要な結果を取得できません:

echo "value = $a[$i][$j]" //2 次元配列の要素を出力したいと考えています。 $a。

これらの文字列を使用する際の潜在的な問題を回避するには、通常、次のように複雑な変数を文字列から分離します。 echo 'value = ' . $a[$i][$j ];// ドット (. ) 文字列を接続する

もう 1 つの方法は、構文アナライザーがそれらを正しく識別できるように、複雑な変数を中括弧で囲むことです:

echo " value = {$a[$i][$ j]}" //二次元配列 $a の要素を出力

このようにして、新たな問題が発生します。文字列内で中括弧文字自体を引用したい場合は、エスケープ文字を使用することを忘れないでください。

Php code

$var = 3; " value = {$var}"; // 結果を出力します "value = 3"

echo "value = {$var}" // 結果を出力します "value = {3}"

$var = 3;

echo "value = {$var}" // 結果を出力 "value = 3"

echo "value = {$var}"; result "value = {3}"

3. SQL ステートメント

これは、データベースに挿入される SQL ステートメントで文字列を定義するためによく発生する問題です。一重引用符を含む文字列をデータベースに挿入すると、この SQL ステートメントはエラーを引き起こします。

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

このとき、処理方法の 1 つは次のとおりです。 SQL を使用するにはエスケープ文字のバックスラッシュをステートメント

に追加します。つまり、...Values('O'Kefee',...

もちろん、addslashes() 関数を使用することもできます。この関数の機能は、エスケープ文字

を追加することです。つまり、$s = addlashes("O'Kefee") ...Values(' ".$s."' ,...

もう 1 つの方法は、php.ini で Magic-quotes オプションを設定することです。このオプションがオンになっている場合、

追加: これは二重引用符と一重引用符の役割から始まります。二重引用符で囲まれたフィールドは、

例:

$abc='I love u';
echo $abc //結果は次のとおりです: 愛しています。

echo '$abc' // 結果は次のとおりです: $abc

echo "$abc" // 結果is: I love you

So SQL ステートメントで値を割り当てる場合、SQL="select a,b,c from..." も使用する必要があります。 SQL ステートメント内の一重引用符でフィールド名を引用します。

例: select * from table where user='abc';

ここでの SQL ステートメントは SQL="select として直接記述できます。 * from table where user='abc'"

ただし、次のような場合:

$user='abc';

SQL1="select * from table where user=' ".$user." ' ";

SQL2="select * from table where user=' abc ' "

一重引用符の間にスペースを少し追加しました

つまり、'abc' を ' ".$user." に置き換えると、SQL 文字列全体が分割されるだけです。次の 3 つの部分に分解できます

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

2: $user

3: " ' "

文字列は . で繋がっているので

が分かります。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません