php的常量及其数据类型

1,php字符串可以用哪三种定义方式,他们的区别是什么?

单引号,双引号,heredoc,newdoc。

区别

单引号不能解析变量,只能解析单引号和反斜杠本身,如

<?php
$a = '\'';
$b = '\\';
// 输出为 ''','\'
?>

然后单引号变量与变量,字符串和字符串,变量和字符串之间可以用.来链接。

双引号可以解析所有的转义字符的,如

转义字符
序列 含义
\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 起)
\ 反斜线
\$ 美元标记
\” 双引号

也可以解析变量,如

<?php
$a = '\'';
$b = '\\';
// 输出为 ''','\'
$c = "{$b}";
// 输出为'''
?>

当然,单引号解析还是比较快的,所以,如果有变量的话,也不一定就要用双引号,可以用单引号加.,如

<?php
$a = '1111';
$b = 'aaa\''.$a.'\'';

heredoc有点像双引号,newdoc有点像单引号,不同的是用来写大文本的字符串。EoT,EoD都可以,下面分别是
heredoc

<?php
$str = <<<EoD
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;

newdoc

<?php
$str = <<<'EoD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;

回到正题,php的数据类型,本质上有三大数据类型(标量,符合,特殊)。
注意,浮点型不能运用到比较运算中,如0.1+0.7其实是不等于0.8的,因为十进制转二进制的时候,精度会丢失。

布尔类型
false的七种类型
0,0.0,’ ‘,false,NULL,array(),’0’分别是
整型0,浮点0,空字符串,布尔false,NULL,空数组,0字符串
数组类型
超全局数组
$_GLOBALS,$_POST,$_GET,$_REQUSET,$_SESSION,$_COOKIE,**预定义常量 **
FILE, LINEDIRFUNCTIONCLASSTRAITMETHODNAMESPACE

All posts

Other pages

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注