PHP第二部分的数据类型的字符串类型。
单引号
双引号
文本的语法结构
nowdoc语法结构(自PHP 5.3.0)
单引号
定义字符串最简单的方法是用一个引号(标点符号)包围它。
如果你想输出一个单引号,你需要添加一个反斜杠()在它的前面。在单引号之前或在你要输出的字符字符串的结尾()输入两。注意,如果反斜杠之前的任何其他字符的添加,反斜杠将直接输出。
与双引号和文本的语法结构,注意:不能在单引号字符串变量和特殊意义的字符替换。
如果字符串是用双引号()括起来的,PHP将解析一些转义字符,就像一个引号字符串一样。如果外面的转义字符的字符输出,反斜杠将被打印出来。php5.1.1之前,在 { $ var }反斜杠没有证明。
使用双引号定义的字符串的最重要的特性是执行变量。
Heredoc结构
第三种方式来定义一个定界符字符串:<< <。事后,一个标识符的定义,那么一个新的路线。其次是字符串本身,以及最终的标识符与先前定义的标识符的结束标志。
结束时引用的标识符必须位于行的开头,并且标识符的命名应该遵循PHP的规则作为其他标记。它只能包含字母、数字和下划线,不能用数字和下划线开头。
Warning should be aware that the end of the identifier, in addition to a semicolon (;), can absolutely not include other characters.This means that the identifier can not be indented, and the semicolon can not have any blank or tabs.More importantly, the end of the identifier must be a new row tag recognized by the local operation system, for example, 在UNIX和Mac OS X系统中,终端标识符(可能是分号)也必须遵循新的行标记。
如果不遵守此规则,则结束标记不干净,PHP将考虑它不结束标识符并继续查找。如果在文件结束之前没有找到正确的结束标识符,PHP将在最后一行生成语法错误。
文本的结构就像一个没有使用双引号,双引号的字符串,也就是说,在文本结构的引号不需要更换,但以上列出的字符(,等)也可以使用。变量将被替换,但要小心当字符串中的文本结构复杂的变量表示。
Nowdoc结构
正如文本结构类似于双引号的字符串,nowdoc结构类似于一个单引号的字符串,nowdoc结构就像一个文本结构,但nowdoc不进行分析。这种结构非常适合PHP代码和文字,不需要其他大段的逃跑了。SGML结构相似,用于声明大段没有解析文本,和nowdoc结构具有相同的功能。
一个nowdoc结构具有相同的结构和heredocs标签< <<,但基于字符的logo使用单引号,如<< << 'eot '的heredocs所有规则结构也适用于nowdoc结构,尤其是规则,结束标识符。
变量分析
当一个字符串用双引号或文本结构定义,字符串中的变量会被解决。
这里有两条语法规则:简单规则和复杂规则。简单的语法规则是最常用和最方便的。它可以用最少的代码将变量、数组值或对象属性添加到字符串中。
复杂的语法规则后加入PHP4,和表达的明显标志是括号包围。
简单的语法规则
当PHP解析器遇到一个美元符号($)时,它将像许多其他解析器一样,试图形成一个合法的变量名。
如果要表达更复杂的结构,请使用复杂的语法规则。
复杂的句法规则
复杂的句法规则不称为复杂结构,而是因为它们可以使用复杂的表达式。
此方法可用于任何希望在字符串、数组变量或对象属性中使用标量变量的方法。只需在字符串外部写一个表达式,然后将其括在括号{和}中。因为{无法转义,只有识别到{旁边的{,可以用来表示{ $ { $。
访问和修改字符串中的字符
字符串中的字符可以被发现和使用方括号0年初含阵列中的数量结构修饰,如$str { 42 }。函数substr()和substr_replace()可以用来实现多个字符。
警告方括号中的数字将产生一个空白,非整数类型转换为整数,非整数类型转换为整数。违法类型将产生一个e_notice水平误差。如果负数是书面的,它会产生一个e_notice,但空字符串读取。指定的字符串的第一个字符是可用的,和空字符串指定为空字节。
有用的函数和运算符
字符串可以用.(点)连接运算符,注意+(加号)运算符不具有此功能。
字符串的操作有许多有用的函数。
字符串函数可以用来理解大多数函数。高级搜索和替换函数可以引用Perl类型的正则表达式函数或正则表达式函数。
还有的URL字符串的加密和解密字符串功能。(Mcrypt和Mhash)。
最后,您可以参考字符类型函数。
转换成字符串
一个值可以通过添加转换成一个字符串(字符串)或使用strval()在它前面的功能。在一个表达式字符串,字符串会自动改变,如使用回声或打印功能时,或在一个变量和字符串比较,解释下面的事情发生移位型和类型转换可以更好,也可以参考功能(设备)。
一个布尔真值被转换成一个字符串1 。布尔false被转换成 (空字符串)。这个转换可以在布尔和字符串之间执行。
一个整数或浮点数转换为文字样式的字符串(包括浮点数字的指数部分),和浮点数(4.1e + 6)使用指数计算方法也可以改变。
数组转换为字符串阵列如果数组值显示,可以使用echo ARR { 'foo}结构,且多为以下。
在PHP 4中,对象转换为字符串对象以获取对象的类的名称,您可以使用get_class()函数,在PHP5中,你可以使用__tostring。
资源总是会被转换成一个字符串的资源ID # 1你没有注意这个结构,它将改变。为了获得资源类型,你可以使用这个功能get_resource_type()。
NULL总是转换成空字符串。
如上所述,直接将一个数组,对象,或一个资源字符串,不会得到比自己更多的信息。这些类型的内容可以使用功能print_r上市()()和()var_dump。
大部分的PHP的值可以被转换成字符串的长期储存,这是所谓的序列化,可以使用函数序列化()。如果PHP引擎将支持WDDX,PHP的值也可以被存储在XML格式。
字符串的数字
当一个字符串在一个数字环境中使用时,结果和类型如下:
如果字符串不contain'e'or'e和数字值满足整数类型的限制(由php_int_max),字符串可以被确定为一个整数,在其他情况下,被确定为一个浮动。
字符串的开始了它的价值,如果该字符串的开头有一个合法的号码,号码可以直接使用。否则,值为0(零),其次是法律价值的符号,后面跟一个或多个号码(有可能是一个小数点),其次是可选的指数符号,这样as'e'or'e,后面跟一个或多个号码。
别以为在C语言中,通过整数转换得到相应的字符,使用功能词()()和CHR()实现ASCII码和字符之间的转换。