ホームページ バックエンド開発 PHPチュートリアル php_PHP チュートリアルにおける一重引用符と二重引用符の違いと使い方の紹介

php_PHP チュートリアルにおける一重引用符と二重引用符の違いと使い方の紹介

Jul 13, 2016 am 10:55 AM
php 導入 について 違い アポストロフィ そして 成し遂げる 引用符 記事 使用法

この記事では、多数の実装を使用して、一重引用符と二重引用符の使用法と違いを紹介しています。詳しく知りたい学生は、この記事を注意深く参照してください。

PHP では、通常、文字列は一対の引用符内で定義されます

以下の手順に従ってください:

コードは次のとおりです コードをコピー

$out = str_replace(array('rn', 'r', 'n'), '', $out);PHP は文字列を定義する 3 つの方法を提供します: 一重引用符、二重引用符、ローカル ドキュメント (ここでは英語ドキュメントで呼びます)またはヒアドキュメント)。

単一引用符:
PHP は組み込み変数と一重引用符で囲まれた文字列内のエスケープ シーケンスをチェックしないため、一重引用符を使用するのが最も効率的です。エスケープする必要がある文字はバックスラッシュと一重引用符自体だけです。

二重引用符:
組み込み変数とエスケープ シーケンスはチェックされますが、エスケープされた一重引用符は認識されません。これは、最初のコードの何が間違っているかも示しています。正しいアプローチは、二重引用符を使用して改行のエスケープ シーケンスを定義することです。

コードは次のとおりですコードをコピー$out = str_replace(array("rn", "r", "n"), '', $out);
ローカルドキュメント:

すべての組み込み変数とエスケープ シーケンスを確認してください。二重引用符をエスケープする必要はありません。例:

コードは次のとおりですコードをコピーエコー << これは「ヒアドキュメント」の例です
テスト用です

EOT; 記録するだけで印象が深まります。

、たとえば:

コードは次のとおりですコードをコピー
「私は一重引用符で囲まれた文字列です」

「私は二重引用符で囲まれた文字列です」

PHP パーサーは文字列を決定するために引用符のペアを使用します。したがって、すべての文字列は同じ single または double を使用する必要があります

開始と終了を定義する引用符。たとえば、次の文字列定義は無効です:

コードは次のとおりですコードをコピー

文字列を定義する場合、区切り文字として考慮される引用符は一重引用符または二重引用符の 1 種類のみです。したがって、文字列が二重引用符で囲まれている場合
の場合、二重引用符のみがパーサーによって解析されます。こうすることで、二重引用符で囲まれた文字列内に他の文字 (一重引用符も含む) を含めることができます
番号。次の引用符文字列はすべて有効です:

「一致しない引用符があるため、有効な文字列ではありません」

「私も違うよ!」

上記の例では、二重引用符文字列内に二重引用符を含めようとしていますが、パーサーは 2 番目の二重引用符に遭遇したときに文字列が終了しているとみなします 終了した。引用符を含めるという目的を達成するには、文字列内で通常の引用符が見つかった場合、パーサーはその引用符の
コードは次のとおりです コードをコピー

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

PHP は、文字列の先頭に対応する引用符を見つけると、文字列の終わりに達したと判断します。そのため、次のようになります。

「なぜ「これ」がうまくいかないのですか?」

実際には、PHP パーサーによって次の 3 つの部分に分割されます。

「Why doesn't」—一重引用符を含む二重引用符文字列

これ - 余分な文字、パーサーは処理できません

「仕事?」 - 普通の文字列



を使用する必要があります。 この引用符が文字列の一部であることを PHP に伝えるには、その前にバックスラッシュを追加します。正しい表現は次のとおりです。



コードは次のとおりです

コードをコピー「なぜ「それ」はうまくいかないのですか?」 (英語の所有格)。次の文字には注意する必要があります:

英語の文字列でよくある問題は、アポストロフィ ' の使用です。これは単一引用符であり、英語の文字列では非常に一般的であるためです


コードは次のとおりです

コードをコピー「アポストロフィは避けたほうがいいです」に含める必要があります。 この記号の前には余分なバックスラッシュが付きます。例:

文字列の中でバックスラッシュ自体が特別な意味を持っていることがわかります。文字列にバックスラッシュ自体を含める必要がある場合は、


コードは次のとおりです

コードをコピー$file = "c:windowssystem.ini"; echo $file; // 出力結果は次のようになります: c:windowssystem.ini $file = "c:windowssystem.ini"; echo $file; // 出力結果は次のようになります: c:windowssystem.ini 2.文字列接続



特殊文字の問題を排除し、長いテキストの引用を容易にする文字列を定義する別の方法。文字列定義メソッド
このメソッドは <<< 記号で始まり、その後にカスタム文字列が続き、最後の行はカスタム文字列で終わり、ボックス内にある必要があります。

次のように、文字列連結文字 (.) を使用して文字列を接続できます。

コードは次のとおりです

コードをコピー

一般的な使用法は、HTML 文字列コードの大きなブロックを作成することです。割り当て記号 (=) とコネクタ (.) を省略して (.=) 記号に結合できます。 番号 (例:
)

$first_name = 'チャーリー'; $last_name = 'ブラウン'; $full_name = $first_name . $last_name;
コードは次のとおりですコードをコピー'; for ( $i=0 ; $i $square = $i * $i; $html .= ' }
$html .= '
$html = '<テーブル>'; $html .= '
数字四角
' .$square '
';




3. 文字列で変数を使用する この機能を使用すると、連結記号を使用せずに、多数の単純な文字列を結合できます。 PHP では、二重引用符で囲まれた文字列に単語を直接含めることができます 文字列変数では、次の 2 つの文字列の処理結果が同じであることがわかります。


コードは次のとおりです

コードをコピー
$full_name = $first_name . $last_name; $full_name = "$first_name $last_name";

一重引用符文字列と二重引用符文字列は、PHP では異なる方法で処理されます。二重引用符で囲まれた文字列の内容は解釈して置換できますが、一重引用符で囲まれた文字列は
数値文字列の内容は常に通常の文字とみなされます。例:

コードは次のとおりです


コードをコピー

$foo = 2; echo "foo is $foo" // 結果を出力: foo は 2 ; echo "foo is $foon"; // 出力結果: foo は 2 (改行あり) echo 'foo は $foon' // 結果を出力: foo は $foon; 文字列内の変数の複雑な組み合わせを参照すると、いくつかの問題が発生する可能性があります。次のコードは正常に動作します。
echo 'foo is $foo' // 結果を出力: foo は $foo



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

若干遅いです。


コードは次のとおりです

コードをコピー

エコー "値 = $foo"; echo "値 = $a[$i]"; しかし、次のコードは私たちが望む結果を得ることができません: コードをコピー


コードは次のとおりです

echo "value = $a[$i][$j]"; //二次元配列 $a の要素を出力したい。

文字列を使用する際のこれらの潜在的な問題を回避するために、通常は次のように複雑な変数を文字列から分離します。

コードは次のとおりですコードをコピー
エコー '値 = ' . $a[$i][$j];

別の方法は、パーサーがそれらを正しく識別できるように、複雑な変数を中括弧で囲むことです:

コードは次のとおりですコードをコピー
echo "value = {$a[$i][$j]}" //2次元配列$aの要素を出力します

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

コードは次のとおりですコードをコピー 3. スラッシュと SQL ステートメント
$var = 3; echo "value = {$var}" // 結果を出力 "value = 3"

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

HTML コードや SQL クエリ ステートメントの生成は、PHP プログラムを作成するときによく遭遇するものであり、興味深いものです。なぜそんなことを言うのですか
これには別のタイプのコードの生成が含まれるため、このコードの記述に必要な構文と規則を慎重に検討し、従う必要があります

しかし。


データベース内の名前が「O'Keefe」であるユーザーにクエリを実行する場合、通常の SQL ステートメントは次の形式になります。 こんな感じです:


コードは次のとおりです

コードをコピーlast_name = 'O'Keefe' のユーザーから * を選択 この場合、関数 AddSlashes($str) の目的は、文字列内の引用文字にバックスラッシュ エスケープ文字を自動的に挿入することです。

SQL ステートメント内の英語の所有文字 (アポストロフィ) はバックスラッシュでエスケープする必要があることに注意してください。 PHP はこれを処理するための関数をいくつか提供しています

コードは次のとおりです

コードをコピー
$last_name = "オキーフ"; $sql = "select * from users where last_name = '" .addslashes($last_name) "'";

この例では、二重引用符が使用されているため、last_name 文字列 (SQL 構文で必須) を一重引用符で囲む必要もあります
引用符の文字列なので、一重引用符のペアをエスケープする必要はありません。次のステートメントは、一重引用符文字列を使用するのと同じです:

コードは次のとおりです


コードをコピー

$sql = 'select * from users where last_name = '' .addslashes($last_name) ';

データベースに文字列を書き込むときは常に、内部の引用符が適切にエスケープされていることを確認する必要があり、これには多くの PHP が必要です
初心者が陥りやすい間違い。


4. 二重引用符と HTML

SQL ステートメントとは異なり、二重引用符は標準 HTML 言語で文字列を表すためによく使用されます (多くのブラウザーには強力なフォールト トレランス機能が備わっています
はい、HTML で文字列を表すために一重引用符を使用することも、引用符を使用しなくても許可されます。例:

コードは次のとおりです コードをコピー

$html = ''.$link.''; $html = "$link";

HTML 言語はバックスラッシュのエスケープをサポートしていません。これは、フォームの非表示の入力を使用してデータを送信するときに発生します

わかった。非表示の入力の値を設定する最良の方法は、htmlspecialchars() 関数を使用してエンコードすることです。次の文は次のようになります
二重引用符が含まれる可能性のあるデータを通常どおり送信するには:

コードは次のとおりですコードをコピー1. 引用符は文字列を定義します。引用符を含めるという目的を達成するには、文字列内で通常の引用符が見つかった場合、パーサーはその元の意味を無視する必要があります。これは、この引用符が文字列の一部であり、引用符であることを PHP に伝えるためです。正しい表現は次のとおりです。一重引用符文字列は他の場所でも使用できます。PHP パーサーは一重引用符文字列を比較的単純な方法で処理するため、二重引用符文字列を使用すると処理速度が速くなります。引用符は文字列の内部的な性質によるもので、解析も必要となるため、より複雑になるため、処理速度が若干遅くなります。

これは...二重引用符はエスケープされますが、一重引用符はエスケープされません

例: /r/n は改行ですが、一重引用符でファイルを作成すると、それは改行ではなく文字になります。二重引用符でファイルを作成すると、それは改行になります。

最後に、他のウェブサイトの意見をチェックしてください

” ” 二重引用符内のフィールドはコンパイラーによって解釈され、HTML コードとして出力されます。

‘ ‘ 一重引用符内の単語は解釈されず、直接出力されます。

文字通りの意味から、一重引用符の方が二重引用符よりも高速であることがわかります。

例:

コードは次のとおりですコードをコピー$abc='私の名前はトメ'; echo $abc //結果は次のようになります: 私の名前はトムです echo ‘$abc’ //結果は次のようになります:$abc特に MYSQL ステートメントを使用する場合、二重引用符と一重引用符の使用法は初心者にとって混乱を招く可能性があります。ここで例を示します。
echo “$abc” //結果は次のようになります: 私の名前はトムです


クエリ条件で定数が使用されていると仮定します。例:

コードは次のとおりですコードをコピーselect * from abc_table where user_name=’abc’;

SQL ステートメントは次のように記述できます:

コードは次のとおりです コードをコピー

SQLstr = "select * from abc_table where user _name= ‘abc’" ;

クエリ条件で変数が使用されていると仮定します。例:

コードは次のとおりです コードをコピー

$user_name = $_REQUEST['user_name'] //文字列変数

;

または

コードは次のとおりです コードをコピー

$user=array ("name"=>$_REQUEST['user_name‘,"age"=>$_REQUEST['age'];//配列変数

SQL ステートメントは次のように記述できます:

コードは次のとおりです コードをコピー

SQLstr = "select * from abc_table where user_name = ' $user_name .

SQLstr = “select * from abc_table where user_name = ‘ ” ” ‘ “;

比較:

コードは次のとおりですコードをコピー
SQLstr=”select * from abc_table where user_name = ‘ abc ‘ ” ;

SQLstr=”select * from abc_table where user_name =’ ” $user _name .

SQLstr=”select * from abc_table where user_name =’ ” . ” ‘ “;

SQLstr は次の 3 つの部分に分解できます:

コードは次のとおりですコードをコピー1: “select * from table where user_name = ‘ ” // SQL ステートメントを修正しました
2: $user //変数
3:「」
文字列の 1、2、3 の部分の間には「.」
を使用します。

http://www.bkjia.com/PHPjc/632232.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632232.html技術記事この記事では、多数の実装を使用して、一重引用符と二重引用符の使用法と違いを紹介しています。詳しく知りたい学生は、この記事を注意深く参照してください。 PHP では通常 1 文字...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

H5とミニプログラムとアプリの違い H5とミニプログラムとアプリの違い Apr 06, 2025 am 10:42 AM

H5。ミニプログラムとアプリの主な違いは次のとおりです。技術アーキテクチャ:H5はWebテクノロジーに基づいており、ミニプログラムとアプリは独立したアプリケーションです。経験と機能:H5は軽量で使いやすく、機能が限られています。ミニプログラムは軽量で、インタラクティブが良好です。アプリは強力で、スムーズな経験があります。互換性:H5はクロスプラットフォーム互換性があり、アプレットとアプリはプラットフォームによって制限されています。開発コスト:H5には、開発コストが低く、中程度のミニプログラム、最高のアプリがあります。適用可能なシナリオ:H5は情報表示に適しており、アプレットは軽量アプリケーションに適しており、アプリは複雑な機能に適しています。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

PSのエクスポートPDFのパスワード保護を設定する方法 PSのエクスポートPDFのパスワード保護を設定する方法 Apr 06, 2025 pm 04:45 PM

Photoshopでパスワードで保護されたPDFをエクスポート:画像ファイルを開きます。 [ファイル]&gtをクリックします。 「エクスポート」&gt; 「PDFとしてのエクスポート」。 「セキュリティ」オプションを設定し、同じパスワードを2回入力します。 [エクスポート]をクリックして、PDFファイルを生成します。

PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 Apr 07, 2025 am 12:05 AM

PHPの厳格なタイプは、declare(strict_types = 1)を追加することで有効になります。ファイルの上部に。 1)関数パラメーターのタイプチェックと戻り値を強制して、暗黙の型変換を防ぎます。 2)厳格なタイプを使用すると、コードの信頼性と予測可能性を改善し、バグを減らし、保守性と読みやすさを向上させることができます。

XPathを使用して、JavaScriptの指定されたDOMノードから検索する方法は? XPathを使用して、JavaScriptの指定されたDOMノードから検索する方法は? Apr 04, 2025 pm 11:15 PM

JavaScriptのDOMノードの下でのXpath検索方法の詳細な説明、XPath式に基づいてDOMツリーから特定のノードを見つける必要があることがよくあります。あなたがする必要があるなら...

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

See all articles