多くのコードでは、文字列コンテンツを含めるために一重引用符または二重引用符が使用されることがあります。実際、簡単に要約すると、二重引用符で囲まれた変数は解析可能であり、一重引用符は絶対文字列であるということです。以下で詳しくご紹介していきます。
推奨チュートリアル: PHP ビデオ チュートリアル
1. 文字列 # を定義します。
## PHP では、文字列の定義に一重引用符または二重引用符を使用できます。ただし、文字列の定義には同じ一重引用符または二重引用符を使用する必要があります。たとえば、「Hello」と「Hello」は不正な文字列定義です。 文字列を定義する場合、区切り文字として考慮される引用符は一重引用符または二重引用符の 1 種類だけです。したがって、文字列が二重引用符で始まる場合は、二重引用符のみがパーサーによって解析されます。このようにして、二重引用符で囲まれた文字列内に他の文字 (一重引用符も含む) を含めることができます。次の引用符文字列は有効です:$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';
2. 文字列変数内の単一引用符と二重引用符
PHP では、二重引用符文字列に文字列変数を直接含めることができます。以下の 2 つの文字列の処理結果は同じであることがわかります。$full_name = $first_name . ' ' . $last_name; $full_name = "$first_name $last_name";
$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
echo "value = $foo"; echo "value = $a[$i]"; echo "value = $foo"; echo "value = $a[$i]";
echo "value = $a[$i][$j]"; //我们希望打印二维数组$a的某个元素。
echo 'value = ' . $a[$i][$j];//字符串的连接用点(.)
echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素
3. SQL ステートメント内
これはよくあるケースです。発生する問題は、データベースに挿入される SQL ステートメントが単一の SQL ステートメントを使用していることです。一重引用符を含む文字列がデータベースに挿入されると、SQL ステートメントが正しく動作しません。 例:$sql="insert into userinfo (username,password) Values('O'Kefee','123456')"
Values ('O\'Kefee',...
#つまり:
$s = addslashes("O'Kefee") ……Values('".$s."',……
もう 1 つの方法は、php.ini でマジッククオート オプションを設定することです。このオプションがオンになっている場合、フォームから送信された情報に一重引用符が含まれている場合はエスケープします。文字は自動的に追加されますので、他の関数を使用する必要はありません
補足: ダブルクォーテーションとシングルクォーテーションの役割から始まります: ダブルクォーテーションで囲まれたフィールドはコンパイラによって解釈され、 HTML コードとして出力しますが、一重引用符内のフィールドは必須ではありません。説明、直接出力します。
例:
$abc='I love u'; echo $abc //结果是:I love u 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." ' ";对比一下 SQL2="select * from table where user=' abc ' "
一重引用符と二重引用符の間にもう少しスペースを追加しました。はっきりと見ていただけると幸いです。
つまり、すべて一重引用符内で 'abc' を '".$user."' に置き換えることを意味します。 SQL 文字列全体を分割するだけです。SQL1 は次の 3 つの部分に分解できます。
1: "select * from table where user=' "
2: $user
3: " ' "
. を使用して文字列を接続すると、理解できます。
以上がPHPの一重引用符と二重引用符の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。