04-PHP数据类型
数据类型
- String(字符串)
- Interger(整型)(数字型)
- Float(浮点型)(数字型)
- Boolean(布尔型)
- Array(数组)
- Object(对象)
- NULL(空值)(””,0,NULL)
- Resource(资源类型)
1/8 PHP 字符串
将任何文本放在单引号和双引号中.
1 2 3 4
| <?php $x = "Hello world!"; var_dump($x); ?>
|
2/8 PHP 整型
- 整数必须至少有一个数字 (0-9)
- 整数不能包含逗号或空格
- 整数是没有小数点的
- 整数可以是正数或负数
- 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)
1 2 3 4
| <?php $x = 123123123; var_dump($x); ?>
|
不同数字
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php $x = 5985; var_dump($x); echo "<br>"; $x = -345; var_dump($x); echo "<br>"; $x = 0x8C; var_dump($x); echo "<br>"; $x = 047; var_dump($x); ?>
|
3/8 PHP 浮点型
带小数部分的数字,或是指数形式
1 2 3 4 5 6 7 8 9 10
| <?php $x = 10.365; var_dump($x); echo "<br>"; $x = 2.4e3; var_dump($x); echo "<br>"; $x = 8E-5; var_dump($x); ?>
|
4/8 PHP 布尔型
TRUE 或 FALSE,通常用于条件判断.
1 2 3 4 5
| <?php $x=true; $y=false; var_dump($x,$y); ?>
|
5/8 PHP 数组
数组可以在一个变量中存储多个值
1 2 3 4
| <?php $nums=array("1","2","3"); var_dump($nums); ?>
|
6/8 PHP 对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明.
首先,必须使用class关键字声明类对象.类是可以包含属性和方法的结构.
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型.
1 2 3 4 5 6 7 8 9 10
| <?php class Car(){ function what_color($color) { return $color; } }
$color = new Car(); echo $color->what_color("red"); ?>
|
7/8 PHP NULL 值
NULL 值表示变量没有值.NULL 是数据类型为 NULL 的值.
NULL 值指明一个变量是否为空值. 同样可用于数据空值和NULL值的区别.
可以通过设置变量值为 NULL 来清空变量数据:
1 2 3 4 5
| <?php $x="Hello world!"; $x=null; var_dump($x); ?>
|
8/8 PHP 资源类型
PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用。
常见资源数据类型有打开文件、数据库连接、图形画布区域等。
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。
使用 get_resource_type() 函数可以返回资源(resource)类型:
1 2 3
| <?php get_resource_type(resource $handle): string ?>
|
此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource,将产生错误。
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php $c = mysql_connect(); echo get_resource_type($c)."\n";
$fp = fopen("foo","w"); echo get_resource_type($fp)."\n";
$doc = new_xmldoc("1.0"); echo get_resource_type($doc->doc)."\n";
?>
|
PHP 类型比较
PHP 是弱类型语言,但也需要明白变量类型及它们的意义.
- 松散比较:使用两个等号 == 比较,只比较值,不比较类型.
- 严格比较:用三个等号 === 比较,除了比较值,也比较类型.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?php header("content-type:text/html;charset=utf-8"); if(42 == "42") { echo '1、值相等'; }
echo PHP_EOL;
if(42 === "42") { echo '2、类型相等'; } else { echo '3、类型不相等'; }
?>
|
比较 0、false、null
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <?php echo '0 == false: '; var_dump(0 == false); echo '0 === false: '; var_dump(0 === false); echo "</br>"; echo '0 == null: '; var_dump(0 == null); echo '0 === null: '; var_dump(0 === null); echo "</br>"; echo 'false == null: '; var_dump(false == null); echo 'false === null: '; var_dump(false === null); echo "</br>"; echo '"0" == false: '; var_dump("0" == false); echo '"0" === false: '; var_dump("0" === false); echo "</br>"; echo '"0" == null: '; var_dump("0" == null); echo '"0" === null: '; var_dump("0" === null); echo "</br>"; echo '"" == false: '; var_dump("" == false); echo '"" === false: '; var_dump("" === false); echo "</br>"; echo '"" == null: '; var_dump("" == null); echo '"" === null: '; var_dump("" === null); ?>
|
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 0 == false: bool(true) 0 === false: bool(false)
0 == null: bool(true) 0 === null: bool(false)
false == null: bool(true) false === null: bool(false)
"0" == false: bool(true) "0" === false: bool(false)
"0" == null: bool(false) "0" === null: bool(false)
"" == false: bool(true) "" === false: bool(false)
"" == null: bool(true) "" === null: bool(false)
|