PHP에서 문자열을 정의하는 방법에는 여러 가지가 있습니다.

青灯夜游
풀어 주다: 2023-03-10 07:08:01
원래의
6466명이 탐색했습니다.

php定义字符串有4种方法:1、用单引号进行定义,例“'abc'”;2、用双引号进行定义,例“"abc"”;3、利用heredoc语法糖进行定义,它是一种在命令行shell和程序语言里定义字符串的方法;4、利用nowdoc语法糖进行定义。

PHP에서 문자열을 정의하는 방법에는 여러 가지가 있습니다.

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

在PHP中这门语言中,因为是弱类型语言,因此使用变量时不需提前定义即可使用。

我们在使用php进行开发的时候,大多数使用双引号、单引号进行定义字符串。既然有这两种方式,那么他们之间肯定是有区别的。

并且,除了单双引号定义字符串这两种方式外,php还增加了heredoc和nowdoc这两种语法糖进行补充。

单引号与双引号

1、单引号

在单引号中,任何特殊字符都会按原样输出【除\\、\‘将会被转义输出】

eg.

<?php
$var = 'this is a var!';
echo '666$var666、\'、\"、\\、\n、\r、\t、\$';
로그인 후 복사

从上面例子中我们可以明显看到,变量是没有被解析的;同时带反斜杠的转义字符仅仅只有单引号、反斜杠被转义输出了,其他的是直接输出。

2、双引号

在双引号中,遇到$将会解析该变量;

双引号中会转义反斜杠的转义字符;

转义字符代码 转义字符的含义
\ " 双引号
\ ' 单引号
\ \ 反斜杠
\ n 换行符
\ r 回车符
\ t 制表符
\ $ 美元符号

eg. 


<?php
$var = &#39;this is a var!&#39;; 
echo "666$var 666、\&#39;、\"、\\、\n、\r、\t、\$";
로그인 후 복사

由上面例子我们可以知道,双引号中的变量被解析了,替换成字符串;其他带反斜杠的转义字符都进行了相应的转义。

3、单双引号之间的区别

以上两者主要区别:

  1、双引号会替换变量的值,而单引号会把它当做字符串输出。

  2、对于转义的支持

  3、性能速度问题,由于双引号中的字符串需要检测是否含有$符号修饰的变量,因此从理论上讲,单引号是比较快的。

heredoc与nowdoc

1、heredoc

heredoc可以理解为不使用双引号来定义字符串,但效果与使用双引号一致。【此时双引号相当于普通字符】

语法要求:

  1、开始标记和结束标记使用相同的字符串,通常以大写字母来写。

  2、开始标记后不能出现空格或多余的字符。

  3、结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。

  4、位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。

eg.

<?php

$var = &#39;this is suifeng&#39;;

echo <<<"EOT"

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
    <title>"随风"</title>
</head>
<body>
66666666666<br/>
"666666666"<br/>
$var<br/>
\$var<br/>
\n666<br>
</body>
</html>

EOT;
로그인 후 복사

  从打印的结果我们可以看出:此时双引号仅仅只是一个普通字符;其他的效果和双引号的字符串效果一致。

2、nowdoc

同理,nowdoc是不使用单引号来定义,但效果相当于使用单引号来定义的字符串。【此时单引号相当于普通字符】

语法同heredoc

eg.


 <?php

$var = &#39;this is suifeng&#39;;

echo <<<&#39;EOT&#39;

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
    <title>"随风"</title>
</head>
<body>
&#39;02020&#39;<br/>
\&#39;<br/>
66666666666<br/>
"666666666"<br/>
$var<br/>
\$var<br/>
\n666<br>
</body>
</html>

EOT;
로그인 후 복사

注意:

定界符之后必须不能有任何字符【特别是空格字符有时会没注意到】,否则将会出错。

如上例中的EOT后面有空格就会报这个错误:【Parse error: syntax error, unexpected '<<' (T_SL)】

推荐学习:《PHP视频教程

위 내용은 PHP에서 문자열을 정의하는 방법에는 여러 가지가 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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