php教程 php手册 详细介绍在PHP中单引号和双引号的区别

详细介绍在PHP中单引号和双引号的区别

Jun 13, 2016 am 10:14 AM
php 소개하다 ~에 대한 차이점 그리고 존재하다 따옴표 기사 상세한

文章详细的介绍了关于详细介绍在PHP中单引号和双引号的区别,有需要了解的同学可参考一下。

1、定义字符串   
在PHP中,字符串的定义可以使用单引号,也可以使用双引号。但是必须使用同一种单或双引号来定义字符串,如:‘Hello"和“Hello'为非法的字符串定义。   
定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:

Php代码

$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 doesn't "this" work?" 则会被分为三段。如果在这个串中想要表示出双引号,则可以使用转义符""(反斜线),变成 "Why doesn't "this" work?" 即可。

2、字符串变量中的单、双引号   

PHP允许我们在双引号串中直接包含字串变量,我们可以发现下面的两个字串的处理结果是相同的。

$full_name = $first_name . ' ' . $last_name;

$full_name = "$first_name $last_name";   

单引号串和双引号串在PHP中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如:

Php代码

$foo = 2;

echo "foo is $foo"; // 打印结果: foo is 2

echo 'foo is $foo'; // 打印结果: foo is $foo

echo "foo is $foon"; // 打印结果: foo is 2 (同时换行)

echo 'foo is $foon'; // 打印结果: foo is $foon

$foo = 2;

echo "foo is $foo"; // 打印结果: foo is 2

echo 'foo is $foo'; // 打印结果: foo is $foo

echo "foo is $foon"; // 打印结果: foo is 2 (同时换行)

echo 'foo is $foon'; // 打印结果: foo is $foon   

正如你所看到的,在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠\和插入单引号')。所以,当你想在字串中进行变量代换和包 含n(换行符)等转义序列时,你应该使用双引号。单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些,因为PHP语法分析器对单引号串 的处理方式比较单纯,而双引号的处理由于串内部也需要解析,因此更复杂些,所以处理速度略慢。   

在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作:

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的某个元素   

这样,又出现新问题了。当我们想在字串中引用花括号字符本身时,就要记得使用转义符了:

Php代码

$var = 3;

echo "value = {$var}"; // 打印结果 "value = 3"

echo "value = {$var}"; // 打印结果 "value = {3}"

$var = 3;

echo "value = {$var}"; // 打印结果 "value = 3"

echo "value = {$var}"; // 打印结果 "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."',……   

还有一种方法是设置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'"

但是如果象下面:

$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:" ' "

字符串之间用 . 来连接

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

R1과 V3 버전의 차이점은 무엇입니까? R1과 V3 버전의 차이점은 무엇입니까? Feb 19, 2025 pm 03:24 PM

DeepSeek : R1과 V3 버전의 심층 비교는 최고의 AI 어시스턴트를 선택하는 데 도움이됩니다! DeepSeek에는 이미 수천만 명의 사용자가 있으며 AI 대화 기능이 호평을 받았습니다. 그러나 R1 및 V3 버전에 직면 할 때 혼란 스럽습니까? 이 기사에서는 가장 적합한 버전을 선택하는 데 도움이되는 두 가지의 차이점을 설명합니다. DeepSeekr1과 V3 버전의 핵심 차이 : 기능 V3 버전의 설계 목표는 복잡한 문제 추론, 딥 로직 분석, 다기능 대형 언어 모델, 확장 성 및 효율성 아키텍처 및 매개 변수 강화 학습 최적화 아키텍처, 매개 변수 척도 1.5에 중점을 둡니다. 10 억 ~ 700 억 MOE 하이브리드 전문가 아키텍처, 총 매개 변수는 671 억에 이르며 각 토큰은 370 억으로 활성화됩니다.

깊은 사용을위한 FAQ 요약 깊은 사용을위한 FAQ 요약 Feb 19, 2025 pm 03:45 PM

Deepseekai 도구 가이드 및 FAQ Deepseek은 강력한 AI 지능형 도구입니다. FAQ : 다른 액세스 방법의 차이 : 웹 버전, 앱 버전 및 API 통화간에 기능에는 차이가 없으며 앱은 웹 버전의 래퍼 일뿐입니다. 로컬 배치는 증류 모델을 사용하는데,이 모델은 DeepSeek-R1의 정식 버전보다 약간 열등하지만 32 비트 모델은 이론적으로 90% 정식 버전 기능을 갖습니다. 선술집이란 무엇입니까? Sillytavern은 API 또는 Ollama를 통해 AI 모델을 호출 해야하는 프론트 엔드 인터페이스입니다. 중단 한도는 무엇입니까?

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

비트 코인에는 비트 코인이 주식이 있습니까? 비트 코인에는 비트 코인이 주식이 있습니까? Mar 03, 2025 pm 06:42 PM

cryptocurrency 시장은 급성장하고 있으며, 리더로서 Bitcoin은 많은 투자자들의 관심을 끌었습니다. 많은 사람들이 궁금합니다. 비트 코인은 주식이 있습니까? 대답은 아니오입니다. 비트 코인 자체는 주식이 아니지만 투자자는 다양한 채널을 통해 비트 코인 관련 자산에 간접적으로 투자 할 수 있으며,이 기사에서 자세히 설명 할 것입니다. 비트 코인 투자에 대한 대안 : Bitcoin에 직접 투자하는 대신, 투자자는 Bitcoin Market에 참여할 수 있습니다. Bitcoin ETF : 이것은 자산 포트폴리오에 Bitcoin 또는 Bitcoin 선물 계약이 포함 된 주식 거래 시장에서 거래되는 펀드입니다. 이것은 비트 코인을 직접 보유하지 않고도 주식 투자에 익숙한 투자자에게 비교적 편리한 옵션입니다. 비트 코인 채굴 회사 주식 :이 회사의 비즈니스는 비트 코인 채굴 및 보유 비트 코인입니다.

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

프리 마켓과 애프터 마켓 거래의 차이점은 무엇입니까? 프리 마켓과 애프터 마켓 거래의 차이점에 대한 자세한 설명 프리 마켓과 애프터 마켓 거래의 차이점은 무엇입니까? 프리 마켓과 애프터 마켓 거래의 차이점에 대한 자세한 설명 Mar 03, 2025 pm 11:54 PM

전통적인 금융 시장에서, 프리 마켓 및 마켓 거래는 정기 거래 기간 이외의 거래 활동을 말합니다. cryptocurrency 시장은 24 시간 내내 거래되고 있지만 Bitget과 같은 거래 플랫폼은 유사한 기능, 특히 주식과 암호 화폐를 동시에 거래하는 일부 포괄적 인 플랫폼을 제공합니다. 이 기사는 프리 마켓 및 애프터 마켓 거래의 차이를 명확히하고 통화 가격에 미치는 영향을 탐구합니다. 프리 마켓과 애프터 마켓 거래의 4 가지 주요 차이점 : 프리 마켓과 마켓 트레이딩과 정기 거래 기간의 주요 차이점은 거래 시간, 유동성, 가격 변동 및 거래량 : 거래 시간 : 공식 거래가 시작되기 전에 시판 전 거래가 수행되기 전에 발생합니다. 유동성 : 시간 전 및 시간외 거래의 유동성은 낮으며, 거래자는 거의 없으며, 입찰 및 제안 가격 차이는 규칙적인 거래 기간 동안 높습니다.

See all articles