PHP における単一引用符と二重引用符の違い、php は二重引用符を引用符で囲みます_PHP チュートリアル
PHP における一重引用符と二重引用符の違い、php は二重引用符を引用します
1. 文字列を定義する
PHP では、一重引用符または二重引用符を使用して文字列を定義できます。ただし、文字列を定義するには同じ一重引用符または二重引用符を使用する必要があります。たとえば、「Hello」と「Hello」は無効な文字列定義です。
文字列を定義する場合、区切り文字として考慮される引用符は一重引用符または二重引用符の 1 種類だけです。したがって、文字列が二重引用符で始まる場合は、二重引用符のみがパーサーによって解析されます。このようにして、二重引用符で囲まれた文字列内に他の文字 (一重引用符も含む) を含めることができます。次の引用文字列は有効です:
Php コード
$s = "I am a 'single quote string' inside a double quote string";
$s = 'I am a "double quote string" inside a double quote string"; string';
$s = "私は二重引用符文字列の中の「単一引用符文字列」です";
$s = '私は一重引用符文字列の中の「二重引用符文字列」です';なぜ「これ」はうまくいかないのか?』を3回に分けてお伝えします。この文字列で二重引用符を表現したい場合は、エスケープ文字「" (バックスラッシュ) を使用して、「なぜ "this" は機能しないのですか?」 のようにすることができます。
2. 文字列変数内の単一引用符と二重引用符
PHP では、二重引用符文字列の中に文字列変数を直接含めることができます。次の 2 つの文字列の処理結果が同じであることがわかります。
$full_name = $first_name . ' ' . $last_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 is $foon' // 出力結果: foo は $foon
$foo = 2;
echo "foo is $foo"; // 結果を出力: foo は 2
echo 'foo is $foo'; // 結果を出力: foo は $foo
echo "foo is $foon"; : foo is 2 (with newline)
echo 'foo is $foon'; // 出力結果: foo is $foon
ご覧のとおり、一重引用符文字列内のバックスラッシュも展開の意味を失っています (挿入を除く)バックスラッシュ \ と一重引用符 ') を挿入します。したがって、変数置換を実行し、文字列に n (改行) などのエスケープ シーケンスを含める場合は、二重引用符を使用する必要があります。一重引用符文字列は他のどこでも使用できます。スクリプト内で一重引用符文字列を使用すると、処理速度が速くなります。これは、PHP パーサーが一重引用符文字列を比較的単純な方法で処理する一方で、二重引用符の処理も内部で解析する必要があるためです。したがって、文字列はより複雑になり、処理が若干遅くなります。
文字列内の変数の複雑な組み合わせを参照する場合、いくつかの問題が発生する可能性があります。次のコードは正常に機能します。
echo "value = $foo";
echo "value = $a[$i]";
そして、次のコードは、私たちが望む結果を得ることができません:
echo "value = $a [$i][ $j]"; //二次元配列 $a の要素を出力したい。
これらの文字列を使用する際の潜在的な問題を回避するために、通常は次のように複雑な変数を文字列から分離します: echo 'value = ' . $a[$i][$j];// 文字列を接続するにはドット (.) を使用します
もう 1 つの方法は、構文アナライザーがそれらを正しく識別できるように、複雑な変数を中括弧で囲むことです。
echo "value = {$a[$i][$j ]}" //2 つの要素を出力します。次元配列 $a
このようにして、新たな問題が発生します。文字列内で中括弧文字自体を引用したい場合は、エスケープ文字を使用することを忘れないでください。
Php code
$var = 3;
echo "value = {$var}";結果 "値 = 3"
echo "値 = {$var}" // 結果 "値 = {3}"
echo "値 = {$var}"; / Print Result "value = 3"
echo "value = {$var}"; // Print result "value = {3}"
3. SQL ステートメントでは、これは挿入時によく発生する問題です。データベースの SQL ステートメントでは、一重引用符を使用して文字列を定義します。一重引用符を含む文字列をデータベースに挿入すると、SQL ステートメントがエラーになります。
例: $sql="insert into userinfo (username,password) Values('O'Kefee','123456')"
このとき、SQLにエスケープ文字のバックスラッシュを追加するのも一つの方法です。ステートメント行、
は:...Values('O'Kefee',...
もちろん、addslashes() 関数を使用することもできます。この関数の機能は、エスケープ文字
を追加することです。つまり、$s =addslashes("O'Kefee") ...Values('".$s) です。 ."',...
もう 1 つの方法は、php.ini でマジッククオート オプションを設定することです。このオプションをオンにすると、フォームから送信された情報に一重引用符が含まれている場合、エスケープ文字が自動的に挿入されます。
追加: これは二重引用符と一重引用符の役割から始まります: 二重引用符で囲まれたフィールドはコンパイラーによって解釈され、HTML コードとして出力されます。一重引用符で囲まれた部分は解釈する必要はなく、直接出力されます。
例:
$abc='I love you';
echo $abc //結果は次のようになります: I love you
echo '$ abc' // 結果は次のとおりです:$abc
echo "$abc" // 結果は次のとおりです: I love u
したがって、データベース内の 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." ;Compare
SQL2="select * from table where user=' abc ' "
me 一重引用符と二重引用符の間にもう少しスペースを追加しました
つまり、'abc' を '".$user."' に置き換えると、SQL 文字列全体が次の 3 つの部分に分解できます
1。 : "select * from table where user=' "
2: $user
3: " ' "
を使用してください。理解できるようになります。
www.bkjia.com

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。
