字符串是任何一门语言都有的一种数据类型,在这里。我主要讲的是php的字符串语法结构
有4种表达式表达:
1、单引号
2、双引号
3、heredoc语法结构
4、nowdoc语法结构
<strong>1、当字符被包围在 单引号 ' 中时,php解析只会单纯的把其中的当作字符来出来。</strong>
<strong>2、当字符被包围在双引号 " 中时,php解析会对一些特殊的字符进行解析,如下字符</strong>
\n 换行(ASCI中的LF或0x0A(10))
\r 回车(ASCI中的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
error_reporting(E_ALL);
$data = 'fantastic';
echo "This works: $data";
?>
将会有如下输出
② {}花括号与 $美元符号的使用
<?php
error_reporting(E_ALL);
$data = 'fantastic';
echo "This works:{$data}";
echo "<br/>";
echo "This works:{ $data}";
echo "<br/>";
echo "This works:${ data}";
echo "<br/>";
echo "This works:${data}";
?>
这将会有如下输出:
故:
1、花括号包围美元符号:{}花括号紧挨着$美元符号的时候,花括号会被解析出来,若没有紧挨着,则会被当作字符串输出。
2、美元符号在花括号的前面:{}花括号紧挨着$美元符号的时候,会被当作正常变量解析出来,否则,其中的变量名,会被php认为是常量,而导致php提示,不过解析还是能解析的出来的
数组中 {}花括号与 $美元符号的使用
<?php
error_reporting(E_ALL);
$data['fu'] = 'fantastic';
echo "This works:{$data['fu']}";
echo "<br/>";
echo "This works:{$data[fu]}";
echo "<br/>";
echo "This works:{ $data[fu]}";
echo "<br/>";
echo "This works:$data[fu]";
?>
会导致如下的输出
字符串转数值
当字符串被当作一个数值来运算时,字符串会被转成相应的数值,具体如下:
1、当字符串没有包含 “.” 、“e”、“E”时,并且在整形范围内(由PHP_INT_MAX定义),该字符串会被当作整形integer来取值,否则为float来取值。
2、该字符串的开始部分决定了它的值。如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。合法数值由可选的正负号,后面跟着一个或多个数字(可能有小数点),再跟着可选的指数部分。指数部分由 'e' 或 'E' 后面跟着一个或多个数字构成。
以下是代码示例
<?php
$foo = 1 + "10.5"; // $foo is float (11.5)
$foo = 1 + "-1.3e3"; // $foo is float (-1299)
$foo = 1 + "bob-1.3e3"; // $foo is integer (1)
$foo = 1 + "bob3"; // $foo is integer (1)
$foo = 1 + "10 Small Pigs"; // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1; // $foo is float (11)
$foo = "10.0 pigs " + 1.0; // $foo is float (11)
?>