我的编程空间,编程开发者的网络收藏夹
学习永远不晚

php字符串的定义方式有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

php字符串的定义方式有哪些

本文小编为大家详细介绍“php字符串的定义方式有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“php字符串的定义方式有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

有4种定义方式:1、用单引号包裹字符,语法“'字符内容'”;2、用双引号包裹字符,语法“"字符内容"”;3、用heredoc结构,语法“<<<EOF 字符内容 EOF;”;4、用nowdoc结构,语法“<<<'EOD' 字符内容 EOD;”。Nowdoc和heredoc类似,但它中不进行变量解析操作;这种结构很适合用于嵌入PHP代码或其它大段文本而无需对其中的特殊字符进行转义。

php字符串的定义方式有哪些

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

字符串是连续的字符序列,在其它语言中,字符和字符串是两种不同的数据类型,但在 PHP 中,统一将字符和字符串当作字符串数据类型。

在 PHP 中,定义字符串有4种方式,分别是单引号方式、双引号方式、Heredoc 方式、nowdoc 方式。

“单引号”定义方式

定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ')。

要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\\)。其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。

注意: 不像双引号和 heredoc 语法结构,在单引号字符串中的变量和特殊字符的转义序列将不会被替换。

示例:

<?phpecho 'this is a simple string';echo '<br>';// 可以录入多行echo 'You can also have embedded newlines instrings this way as it isokay 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 newlineecho 'This will not expand: \n a newline';echo '<br>';// 输出: Variables do not $expand $eitherecho 'Variables do not $expand $either';echo '<br>';?>

php字符串的定义方式有哪些

“双引号”定义方式

如果字符串是包围在双引号(")中, PHP 将对以下特殊的字符进行解析:

转义字符
序列含义
\n换行(ASCII 字符集中的 LF 或 0x0A (10))
\r回车(ASCII 字符集中的 CR 或 0x0D (13))
\t水平制表符(ASCII 字符集中的 HT 或 0x09 (9))
\v垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))
\eEscape(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 的表达方式输出字符串

和单引号字符串一样,转义任何其它字符都会导致反斜线被显示出来。

用双引号定义的字符串最重要的特征是变量会被解析,即变量解析。

示例:

<?phpecho "this is a simple string";echo "<br>";// 也可以录入多行echo "You can also have embedded newlines instrings this way as it isokay to do";?>

php字符串的定义方式有哪些

“Heredoc”定义方式

第三种表达字符串的方法是用 heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志。

结束标识符可以使用空格或制表符(tab)缩进,此时文档字符串会删除所有缩进。 在 PHP 7.3.0 之前的版本中,结束时所引用的标识符必须在该行的第一列。

而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。

<?php$str = <<<EOF  url:  https://www.yisu.com/EOF;echo $str;?>

php字符串的定义方式有哪些

PHP 7.3.0 之后的基础 Heredoc 示例

<?php// 无缩进echo <<<END      a     b    c\nEND;// 4 空格缩进echo <<<END      a     b    c    END;

php字符串的定义方式有哪些

如果结束标识符的缩进超过内容的任何一行的缩进,则将抛出 ParseError 异常:

示例:结束标识符的缩进不能超过正文的任何一行

<?phpecho <<<END  a bc   END;

以上例程在 PHP 7.3 中的输出:

PHP Parse error:  Invalid body indentation level (expecting an indentation level of at least 3) in example.php on line 4

制表符也可以缩进结束标识符,但是,关于缩进结束标识符和内容, 制表符和空格不能混合使用。在以上任何情况下, 将会抛出 ParseError 异常。 之所以包含这些空白限制,是因为混合制表符和空格来缩进不利于易读性。

示例:内容(空白)和结束标识符的不同缩进

<?php// 以下所有代码都不起作用。// 正文(空格)和结束标记(制表符),不同的缩进{    echo <<<END     a        END;}// 在正文中混合空格和制表符{    echo <<<END        a     END;}// 在结束标记中混合空格和制表符{    echo <<<END          a         END;}

以上例程在 PHP 7.3 中的输出:

PHP Parse error:  Invalid indentation - tabs and spaces cannot be mixed in example.php line 8

内容字符串的结束标识符后面不需要跟分号或者换行符。 例如,从 PHP 7.3.0 开始允许以下代码:

示例:在结束标识符后继续表达式

<?php$values = [<<<ENDa  b    cEND, 'd e f'];var_dump($values);

以上例程在 PHP 7.3 中的输出:

array(2) {  [0] =>  string(11) "a  b    c"  [1] =>  string(5) "d e f"}

“Nowdoc”定义方式

就象 heredoc 结构类似于双引号字符串,Nowdoc 结构是类似于单引号字符串的。Nowdoc 结构很象 heredoc 结构,但是 nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。与 SGML 的 <![CDATA[ ]]> 结构是用来声明大段的不用解析的文本类似,nowdoc 结构也有相同的特征。

一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。Heredoc 结构的所有规则也同样适用于 nowdoc 结构,尤其是结束标识符的规则。

示例:

<?phpecho <<<'EOD'Example of string spanning multiple linesusing nowdoc syntax. Backslashes are always treated literally,e.g. \\ and \'.EOD;

php字符串的定义方式有哪些

<?phpclass foo{    public $foo;    public $bar;    function __construct()    {        $this->foo = 'Foo';        $this->bar = array('Bar1', 'Bar2', 'Bar3');    }}$foo = new foo();$name = 'MyName';echo <<<'EOT'My name is "$name". I am printing some $foo->foo.Now, I am printing some {$foo->bar[1]}.This should not print a capital 'A': \x41EOT;?>

php字符串的定义方式有哪些

注意:

Nowdoc 结构是在 PHP 5.3.0 中加入的。

扩展知识:变量解析

当字符串用双引号或 heredoc 结构定义时,其中的变量将会被解析。

这里共有两种语法规则:一种简单规则,一种复杂规则。简单的语法规则是最常用和最方便的,它可以用最少的代码在一个 string 中嵌入一个变量,一个 array 的值,或一个 object 的属性。

复杂规则语法的显著标记是用花括号包围的表达式。

简单语法

当 PHP 解析器遇到一个美元符号($)时,它会和其它很多解析器一样,去组合尽量多的标识以形成一个合法的变量名。可以用花括号来明确变量名的界线。

<?php$juice = "apple";echo "He drank some $juice juice.".PHP_EOL;// Invalid. "s" is a valid character for a variable name, but the variable is $juice.echo "He drank some juice made of $juices.";// Valid. Explicitly specify the end of the variable name by enclosing it in braces:echo "He drank some juice made of ${juice}s.";?>

php字符串的定义方式有哪些

类似的,一个 array 索引或一个 object 属性也可被解析。数组索引要用方括号(])来表示索引结束的边际,对象属性则是和上述的变量规则相同。

<?php$juices = array("apple", "orange", "koolaid1" => "purple");echo "He drank some $juices[0] juice.".PHP_EOL;echo "He drank some $juices[1] juice.".PHP_EOL;echo "He drank some $juices[koolaid1] juice.".PHP_EOL;class people {    public $john = "John Smith";    public $jane = "Jane Smith";    public $robert = "Robert Paulsen";    public $smith = "Smith";}$people = new people();echo "$people->john drank some $juices[0] juice.".PHP_EOL;echo "$people->john then said hello to $people->jane.".PHP_EOL;echo "$people->john's wife greeted $people->robert.".PHP_EOL;echo "$people->robert greeted the two $people->smiths."; // Won't work?>

php字符串的定义方式有哪些

从 PHP 7.1.0 起,还支持负数字索引。

<?php$string = 'string';echo "The character at index -2 is $string[-2].", PHP_EOL;$string[-3] = 'o';echo "Changing the character at index -3 to o gives $string.", PHP_EOL;?>

php字符串的定义方式有哪些

如果想要表达更复杂的结构,请用复杂语法。

复杂(花括号)语法

复杂语法不是因为其语法复杂而得名,而是因为它可以使用复杂的表达式。

任何具有 string 表达的标量变量,数组单元或对象属性都可使用此语法。 表达式的书写方式与在 string 以外的方式相同, 然后用花括号 { 和 } 把它括起来即可。由于 { 无法被转义,只有 $ 紧挨着 { 时才会被识别。可以用 {\$ 来表达 {$。下面的示例可以更好的解释:

<?php// 显示所有错误error_reporting(E_ALL);$great = 'fantastic';// 无效,输出: This is { fantastic}echo "This is { $great}";// 有效,输出: This is fantasticecho "This is {$great}";// 有效echo "This square is {$square->width}00 centimeters broad.";// 有效,只有通过花括号语法才能正确解析带引号的键名echo "This works: {$arr['key']}";// 有效echo "This works: {$arr[4][3]}";// 这是错误的表达式,因为就象 $foo[bar] 的格式在字符串以外也是错的一样。// 换句话说,只有在 PHP 能找到常量 foo 的前提下才会正常工作;这里会产生一个// E_NOTICE (undefined constant) 级别的错误。echo "This is wrong: {$arr[foo][3]}";// 有效,当在字符串中使用多重数组时,一定要用括号将它括起来echo "This works: {$arr['foo'][3]}";// 有效echo "This works: " . $arr['foo'][3];echo "This works too: {$obj->values[3]->name}";echo "This is the value of the var named $name: {${$name}}";echo "This is the value of the var named by the return value of getName(): {${getName()}}";echo "This is the value of the var named by the return value of \$object->getName(): {${$object->getName()}}";// 无效,输出: This is the return value of getName(): {getName()}echo "This is the return value of getName(): {getName()}";// 无效, 输出: C:\folder\{fantastic}.txtecho "C:\folder\{$great}.txt"// 有效, 输出: C:\folder\fantastic.txtecho "C:\\folder\\{$great}.txt"?>

也可以在字符串中用此语法通过变量来调用类的属性。

<?phpclass foo {    var $bar = 'I am bar.';}$foo = new foo();$bar = 'bar';$baz = array('foo', 'bar', 'baz', 'quux');echo "{$foo->$bar}\n";echo "{$foo->{$baz[1]}}\n";?>

php字符串的定义方式有哪些

注意:

函数、方法、静态类变量和类常量可使用 {$} ,在该字符串被定义的命名空间中将其值作为变量名来访问。只单一使用花括号 ({}) 无法处理从函数或方法的返回值或者类常量以及类静态变量的值。

读到这里,这篇“php字符串的定义方式有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

php字符串的定义方式有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

php字符串的定义方式有哪些

本文小编为大家详细介绍“php字符串的定义方式有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“php字符串的定义方式有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。有4种定义方式:1、用单引号包裹字符,
2023-07-02

php中定义字符串的方式有哪些

php中定义字符串有如下四种方式:单引号(单引):使用单引号定义,字符串中的单引号需转义。双引号(双引):与单引号类似,但允许字符串中使用变量,变量值会替换。heredoc 语法:使用 PHP 中定义字符串的方式单引号 (单引):使用单引
php中定义字符串的方式有哪些
2024-04-29

python字符串定义的方式有哪些

本篇文章和大家了解一下python字符串定义的方式有哪些。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。Python是一种广泛使用的编程语言,特别是在数据分析、机器学习和人工智能领域。在Python中,字符串是一个非常重要
2023-07-06

php定义字符串的方法有哪些

这篇文章给大家分享的是有关php定义字符串的方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php定义字符串有4种方法:1、用单引号进行定义,例“abc”;2、用双引号进行定义,例“"abc"”;3、利用
2023-06-15

php字符串有哪几种定义方式

有4种定义方式:1、用单引号包裹字符,语法“字符内容”;2、用双引号包裹字符,语法“"字符内容"”;3、用heredoc结构,语法“<<
2022-06-30

php中定义字符串有哪些方法

在 php 中定义字符串的方法包括:单引号(')双引号(")nowdoc(nowdoc 语法)heredoc(heredoc 语法)类型转换(使用 (string) 函数)函数(如 strval() 和 implode())如何在 PHP
php中定义字符串有哪些方法
2024-04-27

php截取字符串的方式有哪些

PHP截取字符串的方式有以下几种:1. substr()函数:该函数可以从一个字符串中截取指定长度的子字符串。它接受三个参数,第一个参数是要截取的字符串,第二个参数是截取的起始位置,第三个参数是截取的长度。2. mb_substr()函数:
2023-09-05

java字符串数组定义的方法有哪些

在Java中,有以下几种方式来定义字符串数组:1. 使用大括号定义字符串数组:可以通过在大括号中以逗号分隔字符串的方式来定义一个字符串数组。例如:String[] strArray = {"Hello", "World"};2. 使用new
2023-10-18

c语言定义字符串的方式有哪几种

在C语言中,定义字符串的方式有以下几种:使用字符数组:可以通过定义一个字符数组来存储字符串,例如:char str[] = “Hello, World!”;使用字符指针:可以定义一个指向字符串的字符指针来存储字符串,例如:char *str
c语言定义字符串的方式有哪几种
2024-03-06

php转义字符处理的方式有哪些

这篇文章主要讲解了“php转义字符处理的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php转义字符处理的方式有哪些”吧!PHP转义字符处理:在PHP开发中,为了避免字符串数据中出
2023-07-06

Python字符串的转义字符有哪些

这篇文章主要讲解了“Python字符串的转义字符有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python字符串的转义字符有哪些”吧!什么是转义字符转义字符是指,用一些普通字符的组合来
2023-06-29

python字符串定义的三种方式

在Python中,字符串是一个非常重要的数据类型,可用来存储和操作文本数据,本文主要介绍了python字符串定义的三种方式,具有一定的参考价值,感兴趣的可以了解一下
2023-05-20

oracle中转义字符串的方法有哪些

在Oracle中,可以使用以下方法来转义字符串:1. 使用单引号转义:如果字符串中包含单引号,可以使用两个连续的单引号来表示一个单引号。例如,要插入的字符串是 "It's raining",可以使用如下语法进行转义:'It''s raini
2023-08-31

python字符串格式化的方式有哪些

这篇文章主要讲解了“python字符串格式化的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python字符串格式化的方式有哪些”吧!Python的字符串格式化有两种方式:%格式符
2023-06-29

php中字符串转为数字类型的方式有哪些

这篇文章主要讲解了“php中字符串转为数字类型的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中字符串转为数字类型的方式有哪些”吧!以下是PHP中字符串转为数字类型的几种方式
2023-07-05

oracle字符串拼接的方式有哪些

在Oracle中,字符串拼接有多种方式,包括使用字符串连接运算符“||”、使用CONCAT函数、使用字符串函数如CHR、TO_CHAR等来进行拼接等。以下是一些常用的字符串拼接方式:使用字符串连接运算符“||”:SELECT 'H
oracle字符串拼接的方式有哪些
2024-04-17

php打印字符串的方法有哪些

打印方法:1、用“echo($arg)”语句;2、用“print($arg)”语句;3、用“die($arg)”语句;4、用“printf($format,$args)”语句;5、用“sprintf($format,$arg)”语句。
2021-03-27

php打印字符串的方法有哪些

在PHP中有多种打印字符串的方法,包括echo()、print()、printf()、print_r()和var_dump()。选择最合适的打印字符串方法取决于您的特定需求,例如简单输出、格式化输出、调试或其他目的。本文提供了这些方法的语法、用法示例和选择指南,帮助您有效地打印字符串。
php打印字符串的方法有哪些
2024-04-26

php字符串有哪些表示方法

本篇内容介绍了“php字符串有哪些表示方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!表示方法有:1、用单引号把字符包围起来,语法“字符”
2023-06-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录