String字符串语法结构

字符串是任何一门语言都有的一种数据类型,在这里。我主要讲的是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";
?>

将会有如下输出

Paste_Image.png
② {}花括号与 $美元符号的使用
<?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}";
?>

这将会有如下输出:

Paste_Image.png

故:
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]";

?>

会导致如下的输出

Paste_Image.png

字符串转数值

当字符串被当作一个数值来运算时,字符串会被转成相应的数值,具体如下:

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)     
?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容