在php中,字符串是一个连续的字符序列,由一系列的字符组成,其中每个字符等同于一个字节。定义字符串有三种方式:1、使用单引号包裹字符,语法“'字符串内容'”;2、使用双引号包裹字符,语法“"字符串内容"”;3、使用heredoc句法结构“<<<”,语法“<<<EOF 字符内容 EOF;”。
本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
php中的字符串
字符串是一个连续的字符序列,由一系列的字符组成,其中每个字符等同于一个字节。
在其它语言中,字符和字符串是两种不同的数据类型,但在 PHP 中,统一将字符和字符串当作字符串数据类型。
在 PHP 中,定义字符串有三种方式,分别是单引号方式、双引号方式、Heredoc 方式。
使用单引号定义字符串
定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ')。
要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\\)。其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。
<?php
echo 'this is a simple string';
echo '<br>';
// 可以录入多行
echo 'You can also have embedded newlines in
strings this way as it is
okay to do';
echo '<br>';
// 输出: Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';
echo '<br>';
// 输出: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';
echo '<br>';
// 输出: You deleted C:\*.*?
echo 'You deleted C:\*.*?';
echo '<br>';
// 输出: This will not expand: \n a newline
echo 'This will not expand: \n a newline';
echo '<br>';
// 输出: Variables do not $expand $either
echo 'Variables do not $expand $either';
echo '<br>';
?>
使用双引号定义字符串
如果字符串是包围在双引号(")中, PHP 将对以下特殊的字符进行解析:
序列 | 含义 |
---|---|
\n | 换行(ASCII 字符集中的 LF 或 0x0A (10)) |
\r | 回车(ASCII 字符集中的 CR 或 0x0D (13)) |
\t | 水平制表符(ASCII 字符集中的 HT 或 0x09 (9)) |
\v | 垂直制表符(ASCII 字符集中的 VT 或 0x0B (11)) |
\e | Escape(ASCII 字符集中的 ESC 或 0x1B (27)) |
\f | 换页(ASCII 字符集中的 FF 或 0x0C (12)) |
\\ | 反斜线 |
\$ | 美元标记 |
\" | 双引号 |
\[0-7]{1,3} | 符合该正则表达式序列的是一个以八进制方式来表达的字符,which silently overflows to fit in a byte (e.g. "\400" === "\000") |
\x[0-9A-Fa-f]{1,2} | 符合该正则表达式序列的是一个以十六进制方式来表达的字符 |
\u{[0-9A-Fa-f]+} | 匹配正则表达式的字符序列是 unicode 码位, 该码位能作为 UTF-8 的表达方式输出字符串 |
和单引号字符串一样,转义任何其它字符都会导致反斜线被显示出来。
<?php
echo "this is a simple string";
?>
Heredoc 结构
第三种表达字符串的方法是用 heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志。
结束标识符可以使用空格或制表符(tab)缩进,此时文档字符串会删除所有缩进。 在 PHP 7.3.0 之前的版本中,结束时所引用的标识符必须在该行的第一列。
而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。
示例 1
<?php
$str = <<<EOF
url:
https://www.php.cn/
EOF;
echo $str;
?>
以上就是在php中字符串是什么的详细内容,更多请关注编程网其它相关文章!