文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

php字符串有哪些表示方法

2023-06-20 14:36

关注

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

表示方法有:1、用单引号把字符包围起来,语法“'字符'”;2、用双引号把字符包围起来,语法“"字符"”;3、 heredoc语法结构,语法“<<<EOS 字符 EOS”;4、nowdoc语法结构,语法“<<<'EOS' 字符 EOS”。

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

在PHP中有四种方式可以表示字符串,分别是单引号、双引号、heredoc语法结构、nowdoc语法结构。

单引号

定义字符串的最简单的方法,用单引号把字符包围起来。使用单引号时,如果要表达单引号或者反斜杠需要使用反斜杠“\”进行转义。单引号中只对这两个字符进行转义。在单引号中的变量和特殊字符的转义序列不会被替换。单引号中的字符可以是多行的。

<?php$name = 'php';@header("Content-type: text/html; charset=utf-8"); echo '最简单的字符串表达形式'."\n"; echo '可以是多行的'."\n"; echo '单引号"\'"和反斜杠"\\"需要使用"\"转义'."\n"; echo '"\\"与"\"是一样的'."\n"; echo '其他特殊字符如\n、\r和变量$name是不会转换的'."\n";?>

双引号

如果字符被双引号包围,PHP将对其中的一些特殊字符进行解析,双引号可解析的特殊字符如下,双引号字符串最重要的特性是变量解析。

\n:换行(ASCII 字符集中的 LF 或 0x0A (10))
        \r;回车(ASCII 字符集中的 CR 或 0x0D (13))
        \t;水平制表符(ASCII 字符集中的 HT 或 0x09 (9))
        \v;垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起)
        \e;Escape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起)
        \f;换页(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起)
        \\;反斜线
        \$;美元标记
        \";双引号
        \[0-7]{1,3};符合该正则表达式序列的是一个以八进制方式来表达的字符
        \x[0-9A-Fa-f]{1,2};符合该正则表达式序列的是一个以十六进制方式来表达的字符

<?php$name = 'php';@header("Content-type: text/html; charset=utf-8");  echo "双引号中单引号'不需要转义反斜杠\也不需要转义双引号\"需要转义\n"; echo "双引号也可以是多行的\n"; echo "\"\\\\\"与\"\\\"是一样的,但是如果想要表示两个反斜杠则需要使用四个反斜杠\n"; echo "还可以转义其他一些特殊字符,如:\\\$转义为\$,\\x41转义为\x41\n"; echo "还可以解析变量,如:\\\$name解析为$name\n";?>

heredoc语法结构

heredoc语法结构是使用<<<加开始标记和结束标记。在<<<之后提供一个标识符(此标识符的命名需要遵循PHP标签的命名规则,即只能包含字母、数字以及下划线,并且不能以数字开头),然后换行,接下来是字符串本身, 最后用前面定义的标识符做为结束标记。

需要注意的是,开始标记后必须换行,结束标记所在行除了分号“;”外,不能有包含其他字符包括缩进,分号前后也不能有任何空白或制表符等。

在heredoc结构中,单引号、双引号与回车符(\r)与单个反斜杠是不需要转义的,如果要表示多个反斜杠则需要进行转义,其他转义字符与双引号支持的转义字符相同。heredoc结构类似于双引号字符串。

heredoc结构可以用于变量初始化,也可以用在函数参数中传递数据。从PHP5.3起,如果heredoc中不包含变量,那么也可以用来初始化静态变量和类中的属性、常量。还可以通过双引号声明开始标识符。

<?php@header("Content-type: text/html; charset=utf-8");  $name = 'php';function foo(){static $str = <<<EOS\n\r\t\v\e\f\\\\\\\\\$name\"\'\x41\072EOS;echo $str;}foo(); class foo{    const cons= <<<"EOD"consEOD;var $test= <<<EOD"test"EOD;var $bar;    function foo()    {        $this->bar = array('Bar1', 'Bar2', 'Bar3');    }} $foo = new foo();echo foo::cons."\n";echo <<<EOTheredoc中支持更复杂的格式如:\$foo->test=> $foo->test.{\$foo->bar[1]}=>{$foo->bar[1]}.EOT;?>

nowdoc语法结构

nowdoc语法结构是PHP5.3引入的,与heredoc语法结构类似,使用<<<加开始标记和结束标记。但是在<<<后面的开始标识符必须用单引号包围起来,heredoc的所有规则同样适用于nowdoc结构,尤其是结束标识符的规则。

nowdoc结构类似于单引号字符串。nowdoc中不进行解析操作,适用于嵌入PHP代码或大段文本而无需对其中的特殊字符进行转义。与SGML中的<![CDATA[]]>结构声明大段的不用解析的文本类似。

<?php@header("Content-type: text/html; charset=utf-8");  $name = 'php';function foo(){static $str = <<<'EOS'$name\n\r\t\v\e\f\\\\\\\\\$name\"\'\x41\072EOS;echo $str;}foo(); class foo{    const cons= <<<'EOD'consEOD;var $test= <<<'EOD'"test"EOD;var $bar;    function foo()    {        $this->bar = array('Bar1', 'Bar2', 'Bar3');    }} $foo = new foo();echo foo::cons."\n";echo <<<'EOT'nowdoc中不支持复杂的格式如:\$foo->test=> $foo->test.{\$foo->bar[1]}=>{$foo->bar[1]}.EOT;?>

“php字符串有哪些表示方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯