PHP 작은따옴표 및 큰따옴표 사용법

angryTom
풀어 주다: 2023-04-07 08:28:01
원래의
9746명이 탐색했습니다.

PHP 작은따옴표 및 큰따옴표 사용법

많은 코드를 보면 문자열 내용을 담기 위해 작은 따옴표나 큰 따옴표를 사용하는 경우가 있습니다. 사실 간단히 요약하자면 큰 따옴표 안의 변수는 구문 분석이 가능하며 작은 따옴표는 절대 문자열이라는 것입니다. 아래에서 자세히 소개해드리겠습니다.

추천 튜토리얼: PHP 비디오 튜토리얼

1. 문자열 정의

PHP에서는 문자열 정의에 작은따옴표나 큰따옴표를 사용할 수 있습니다. 그러나 문자열을 정의하려면 동일한 작은따옴표 또는 큰따옴표를 사용해야 합니다. 예를 들어 'Hello' 및 'Hello'는 잘못된 문자열 정의입니다. ​​

​ 문자열을 정의할 때 작은따옴표나 큰따옴표 중 한 종류의 따옴표만 구분자로 간주됩니다. 따라서 문자열이 큰따옴표로 시작하면 파서는 큰따옴표만 구문 분석합니다. 이렇게 하면 큰따옴표로 묶인 문자열 내에 다른 문자(작은따옴표 포함)도 포함할 수 있습니다. 다음 인용 부호 문자열은 유효합니다:

$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';   
로그인 후 복사

  ""이것이 작동하지 않는 이유는 무엇입니까?"라는 문자열은 세 개의 단락으로 나누어집니다. 이 문자열에 큰따옴표를 표현하려면 이스케이프 문자 ""(백슬래시)를 사용하여 "Why don't "this" work?"가 될 수 있습니다.

2. 문자열 변수의 작은따옴표와 큰따옴표

PHP를 사용하면 큰따옴표 문자열에 문자열 변수를 직접 포함할 수 있습니다. 다음 두 문자열의 처리 결과가 동일하다는 것을 알 수 있습니다.

$full_name = $first_name . ' ' . $last_name; 
$full_name = "$first_name $last_name";  
로그인 후 복사

  작은따옴표 문자열과 큰따옴표 문자열은 PHP에서 다르게 처리됩니다. 큰따옴표로 묶인 문자열의 내용은 해석되고 대체될 수 있지만 작은따옴표로 묶인 문자열의 내용은 항상 일반 문자로 간주됩니다. 예:

$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   
로그인 후 복사

보시다시피, 작은따옴표 문자열 내의 백슬래시도 확장된 의미를 잃습니다(백슬래시 \ 삽입 및 작은따옴표 ' 삽입 제외). 따라서 변수 대체를 수행하고 문자열에 n(개행)과 같은 이스케이프 시퀀스를 포함하려면 큰따옴표를 사용해야 합니다. 작은따옴표 문자열은 다른 곳에서 사용할 수 있습니다. PHP 파서가 작은따옴표 문자열을 비교적 간단한 방법으로 처리하는 반면 큰따옴표 처리도 내부에서 구문 분석해야 하기 때문에 스크립트에서 작은따옴표 문자열을 사용하면 처리 속도가 더 빨라집니다. 따라서 더 복잡하므로 처리 속도가 약간 느려집니다.

 문자열에서 복잡한 변수 조합을 참조할 때 일부 문제가 발생할 수 있습니다. 다음 코드는 정상적으로 작동합니다.

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="insert into userinfo (username,password) Values('O'Kefee','123456')"  
로그인 후 복사

이때 방법 중 하나는 SQL 문에 이스케이프 문자 백슬래시를 추가하는 것입니다.

즉:...Values('O'Kefee' ,... ... Values('O'Kefee',……   

  当然也可以使用函数 addslashes(),该函数的功能就是加入转义符,

即:

$s = addslashes("O'Kefee") ……Values('".$s."',……   
로그인 후 복사

  还有一种方法是设置php.ini中的magic-quotes选项,打开该选项,则通过表单提交的信息中如果有单引号是,将会自动加上如转义符。因此不用使用其他函数了。

  补充: 这就要从双引号和单引号的作用讲起: 双引号里面的字段会经过编译器解释然后再当作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'"

물론 addlashes() 함수를 사용할 수도 있습니다. 이 함수의 기능은 이스케이프 문자를 추가하는 것입니다.

즉:

$user='abc'; 
SQL1="select * from table where user=' ".$user." ' ";对比一下 
SQL2="select * from table where user=' abc ' "
로그인 후 복사
또 다른 방법은 Magic-quotes 옵션을 설정하는 것입니다. php.ini를 열고 이 옵션을 켜주세요. 양식을 통해 제출된 정보에 작은따옴표가 있으면 자동으로 이스케이프 문자가 추가되므로 다른 기능을 사용할 필요가 없습니다.

 추가: double의 기능부터 시작하겠습니다. 따옴표 및 작은따옴표: 큰따옴표 안의 필드는 컴파일러에 의해 해석된 후 HTML 코드로 출력되지만 작은따옴표 안의 필드는 해석될 필요가 없으며 직접 출력됩니다.

rrreee

따라서 데이터베이스의 SQL 문에 값을 할당할 때도 큰따옴표로 사용해야 합니다. 따옴표 안에는 SQL="select a,b,c from..."이 있지만 SQL에는 작은따옴표가 있습니다. 필드 이름을 인용하는 명령문

예:

rrreee

 여기의 SQL 문은 SQL="select * from table where user='abc'"

 그러나 다음과 같은 경우에는 직접 작성할 수 있습니다. 다음🎜rrreee🎜 작은따옴표와 큰따옴표 사이에 공백을 조금 더 추가했는데, 좀 더 명확하게 보실 수 있기를 바랍니다. 🎜🎜 즉, 'abc'를 '".$user."'로 바꾸는 부분이 안에 있습니다. SQL1은 다음 세 부분으로 분해될 수 있습니다. "select * from table where user =' "🎜🎜  2: $user 🎜🎜  3: " ' "🎜🎜 을 사용하여 문자열을 연결할 수 있습니다. 🎜

위 내용은 PHP 작은따옴표 및 큰따옴표 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿