php数据类型
来源:互联网 发布:电脑音乐剪辑软件 编辑:程序博客网 时间:2024/04/30 23:31
php
支持8中原始的数据类型
4种标量类型:
booleanintegerfloat(double)string
2种复合类型:
arrayobject
2种特殊类型:
resourceNULL
类型函数
bool settype(mixed $var, string $type):将$var强制转换成type类型string gettype(mixed $var):返回变量$var的类型bool is_type($var):判断变量是否为该类型
输出函数
echo():输出一个或多个字符串print():输出一个或多个字符串(效率比echo()慢)printf():同C语言,格式化输出print_r():常用与输出数组var_dump($var):输出某个表达式的值和类型
数据类型:
boolean
值:TURE
和FALSE
,不区分大小写。
以下值被认为是FALSE
:
- 布尔值FALSE本身
- 整型值
0
(零) - 浮点型
0.0
(零) - 空字符串,以及字符串
"0"
- 不包含任何元素的数组。
特殊类型
NULL
(包括尚未赋值的变量)—所有其他值都被认为是
TRUE
Integer:整型
可以十进制,十六进制(0x
),八进制(0
),二进制(0b
),如果一个数超出了integer
的范围,将会被解释成float
,同样如果执行的运算结果超出了integer
范围,也会返回float
。
//PHP中没有整除运算符,1/2会产生float 0.5。echo 1/2; //输出:0.5echo "<br/>";echo (integer)1/2; //输出:0,integer强制转换为整型echo "<br/>";echo round(1/2); //输出:1,round()四舍五入echo "<br/>";echo (integer)0.8; //输出:0,当从浮点型转换成整数时,将向下取整数(去尾法)
Float
:浮点型
要测试两个float
是否相等,不要直接比较两个float
数是否相等,可以使用一个仅比该数值大一丁点的最小误差数。
String
:字符串
一个string
就是由一系列的字符组成,每个字符等同于一个字节。
string
可以用4种方式表达:
- 单引号:单引号内的字符串中的变量和特殊字符的转义序列不会被替换。
- 双引号:会对变量和转义字符进行替换
- heredoc结构
- nowdoc结构
Array
:数组 php
中的数组是一个有序映射,映射就是一种把values
关联到keys
的类型,array
可以接受任意数量用逗号分割的健值对。
key
:可以是一个整型integer
或字符串string
。(注:php
可以同时包含integer
和string
类型的键名) value
:可以是任意类型的值。
- 包含有合法整型值的字符串会被转换为整型(如
"8"
会被转换为8
,但是"08"
不能转换为8
) - 浮点数会被转换为整型,意味着小数部分会被舍去
- 布尔值会被转换为整型
NULL
会被转换为空字符串,即""
- 数组和对应不能被用为键名
//数组定义:$arr1 = array( "key1" => "value1", "key2" => "value2" );var_dump($arr1); //echo不能直接对数组进行输出
如果数组中定义了多个单元都用了同一个键名,则只会使用最后一个,之前其他的都会被覆盖。
$arr2 = array( 1 => "a", 2.2 => "b", true => "c" //会对之前key为1的进行覆盖 );
如果对给出的值没有指定键名,则取当前最大的整数索引值,则新的键名将是该值+1
,如果指定的键名已经有值,则该值会被覆盖,所以key
为可选项,如果未指定,php
将自动使用之前用过的最大的integer
键名+1作为新键名,最小值为0
,如果当前还没有整数索引,键名为0
$arr2[] = 4;var_dump($arr2); $arr3 = array( "a", //键值为0 "b", //键值为1 6 => "c", "d" //键值为7 );
访问数组,可以用array[key]
语法访问,也可以使用array{key}
$arr4 = array( "key1" => "value1", "key2" => "value2" );var_dump($arr4["key1"]);echo "<br/>";var_dump($arr4{"key1"});
//数组的创建$arr5 = array(5 =>1, 4 => 2); var_dump($arr5); echo "<br/>";
//添加一个新的key-value对$arr5[] = 3; var_dump($arr5);echo "<br/>";
//如果x存在,则覆盖value,如果不存在,添加$arr5["x"] = 5; var_dump($arr5);echo "<br/>";
//移除该键值对unset($arr5[4]); var_dump($arr5);echo "<br/>";
//移除整个数组unset($arr5); var_dump($arr5);echo "<br/>";
//注意:这里所使用的最大整数键名不一定就是当前数组中,它只要在上次数组重新生成索引后曾经存在过就行了。$arr6 = array(1, 2, 3, 4, 5, 6);print_r($arr6);echo "<br/>";foreach ($arr6 as $i => $value){ //遍历数组,移除所有元素 //echo $value; //echo "<br/>"; unset($arr6[$i]);}
print_r($arr6); //此时数组为空echo "<br/>";$arr6[] = 9; //此时添加一个key-value(注意键名为6,不为0)print_r($arr6);echo "<br/>";$arr6 = array_values($arr6); //重新索引$arr6[] = 10; //此时key为1,上一个key为0print_r($arr6);echo "<br/>";
unset()函数允许删除数组中的某个键值对,但不会重新索引排序,如果需要删除后重建索引,可以用array_value()函数foreach as 控制结构专门用于数组的,它提供了一个简单的方法来遍历数组
//对于任意integer,float,string,boolean类型,如果将一个值转换为只有一个元素的数组(下标为0)$var = "你好";var_dump(array($var));
Object
:对象,要创建一个新的对象object
,使用new
语句实例化一个类。
class Foo{ function do_foo() { echo "doing foo.."."<br/>"; }}$bar = new Foo();$bar -> do_foo();
Resource
资源类型:是一种特殊变量,保存了到外部资源的一个引用。
NULL
:表示一个变量没有值。 is_null()
:判断一个变量是否为NULL
。 unset()
:移除。
一个变量被认为NULL
三种情况:
- 被赋值为
NULL
- 尚未被赋值
- 被unset()
mixed
:说明一个参数可以接受多种不同的(但不一定是所有的)类型。
注:php
在变量定义中不需要(不支持)明确的类型定义,变量类型是根据该变量的上下文所决定的。也就是说:
- 如果把一个
string
类型的值赋值给变量$var
,则$var
变成string
类型; - 如果又把一个
integer
赋给$var
,$var
变成integer
类型;
强制转换函数:(integer)$var;(boolean)$var;(float)$var;(string)$var;(array)$var;(object)$var;
- PHP数据类型
- PHP数据类型
- PHP数据类型
- PHP数据类型
- php 数据类型
- PHP数据类型
- PHP 数据类型
- php 数据类型
- PHP 数据类型
- php数据类型
- php数据类型
- PHP数据类型
- PHP数据类型
- PHP 数据类型
- PHP 数据类型
- PHP 数据类型
- PHP数据类型
- PHP 数据类型
- Linux命令(31)——find命令
- 命令netstat查看网络状态
- Ubuntu16.04LTS 下ros(kinetic)的arduino应用(二)
- 日常运维-2
- 循环嵌套里关于赋值的小坑
- php数据类型
- 程序员工资多高才算高?
- CocoaPods删除已安装的库
- shiro 学习日记1
- 抓包工具
- 爬格子呀--一堆东西
- 第5章 初始化与清理
- PHP预定义接口之ArrayAccess
- 多元函数带 Peano余项的Taylor公式的推广 (无参考资料)