您的位置:首页 > 编程语言 > PHP开发

[置顶] php入门一之十大基本类型

2018-02-23 10:23 162 查看

基本类型

四种标量类型(bool,integer,float,string),三种组合类型(array,object,callback|callable),两种特殊类型(resource,null),一些伪类型[Pseudo-types](mixed,number,callback|callable,array|object,void)

(注:GetType函数可以获取变量类型,is_INT,is_string,is_bool等函数可判断变量类型。)

布尔(bool)

值不区分大小写

整数(integer)

语法

十进制:[1-9] [ 0-9 ] * | 0

十六进制:0 [XX] [0-9A-FA-F] +

八进制:0 [0-7] +二进制:0b [01] +(注:php5.4.0才支持)

整数:[+十进制| [+ - ]的十六进制| [+ - ]八进制| [+ - ]二进制?

整数值大小

如果PHP遇到超出整数类型范围的数字,它将被解释为float.32位系统上的整数的最大值是int(2147483647)即2 ^ 31-1,64位系统上的整数最大值是int(9223372036854775807)即2 ^ 63-1.

整数的运算

* PHP中没有整数除法运算符.1/2产生浮动0.5。*值可以被转换为一个整数,或者圆形()函数可以更精确地控制舍入

<?php
var_dump(25/7)// float(3.5714285714286)
var _dump((INT)(25/7)); // int(3)
var _ dump(round(25/7));


整数的转换要显式地将一个值转换为整数,请使用(INT)或(整数)强制转换。但是,在大多数情况下,不需要强制转换,因为如果运算符,函数或控制结构需要整数参数,则会自动转换值。也可以使用intval()函数将值转换为整数。

1,resource -> integer,那么结果将成为PHP在运行时分配给该值资源的唯一资源编号0.

2,bool ->integer,那么结果FALSE将产生0(零),TRUE并将产生1(一)0.

3,float ->integer,那么结果将只保留整数部分。

浮点数(float)

语法

LNUM [0-9]+

DNUM ([0-9][.]{LNUM}) | ({LNUM}[.][0-9])

EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})

(注:LNUM即长数,DNUMBER即双号)

数值大小

精度

[PHP浮点数的一个常见问题的解答]//http://www.laruence.com/2013/03/26/2884.html

<?php
echo(int)((0.1 + 0.7 )* 10); //7


php float是采用IEEE 754表示精度,用54位二进制表示精度,在看似有穷的小数,在计算机的二进制表示里斯是无穷的,所以不是0.8而是0.79999999,强转只保留整数部分。所以是7。

字符串(string)

语法

单引号,双引号

操作字符串

连接

使用.来连接

字符串长度

strlen() 函数

字符串转大写或小写

strtoupper() 函数strtolower() 函数

格式化字符串

输出到界面vprintf()函数

输出到变量sprintf() 函数

拆分字符串

explode() 函数

移除字符串两侧的指定字符

trim(字符串,指定字符)

字符串转数组

explode(指定字符,字符串)

数组(Arrays)

定义:

是一个有序映射(order map),一种将值与键关联的类型。可以看成是数组,向量,散列表(一个映射的实现),字典,集合,堆栈,队列等等,由于值可以是任意类型,所以又能作为树和多维数组。

语法:

用array()表示,如

<?php
$array=array(
key => value,
key2 => value2,
key3 => value3,
...)//也可以不用写键,默认从0开始自增
$array= [   值1,值2,值3 ] //从PHP 5.4开始,您还可以使用短数组语法,它用[]替换数组)。
$array= [
key => value,
key2 => value2,
key3 => value3,
... ];


一,key可以是Integer或String,value可以是任意类型。

二,除了Arrays和Object类型作为key会导致错误警告(非法偏移类型)外,其它类型作为key则会发生强转,有效十进制整数的字符串会转成整数,浮会去除小数部分转成整数,布尔会转成整数(真为1,假为0),零会转成空字符串。

三,数组可以同时包含整数和字符串键,因为PHP不区分索引数组和关联数组。

四,数组的键是唯一的,若相同则后面值覆盖前面的。

五,数组的键可以不用声明,那么它会按索引从0开始自增作为每个值的键。另外,一个key的值一定等于上一个key的值+1

数组类型

数值数组 - 带有数字 ID 键的数组

关联数组 - 带有指定的键的数组,每个键关联一个值

多维数组 - 包含一个或多个数组的数组

数组的长度

count() 函数用于返回数组的长度(元素的数量)

sizeof() 函数

数组的排序

sort() - 对数组进行升序排列

rsort() - 对数组进行降序排列

asort() - 根据关联数组的值,对数组进行升序排列

ksort() - 根据关联数组的键,对数组进行升序排列

arsort() - 根据关联数组的值,对数组进行降序排列

krsort() - 根据关联数组的键,对数组进行降序排列

(特别注意,排序后的数组的key和value的对应关系是不变的,可以使用array_values函数对数组进行排序,方便取数组中最大或最小的元素。)

利用数组中某个字段进行排序

array_multisort(sortarray,SortRank,sortarray,SortRank,sortlist)

$sortarray是用来存储排序字段的数组,SortRank是排序条件,有以下两种:

SORT_ASC - 默认,按升序排列。(A-Z)

SORT_DESC - 按降序排列。(Z-A)

$sortlist是需要排序的数组,以遇到的问题为例:

list = [{"name": "小明","sort": 1},{"name": "小强","sort": 2},{"name": "小翔","sort": 3}]
foreach($list as $list2){
$sort[]=$list2["sort"];
}
array_multisort($sort,SORT_ASC,$list);


数组元素的操作

读取或修改数组元素

array[key]或array{key} 语法来访问。

删除数组元素

unset($arr[5])函数来删除,注意key的值不会被改变。要重新索引数组,可以使用array_values函数

array_pop() 函数删除数组中的最后一个元素

添加数组元素

array_push(array,value1,value2…)函数向数组尾部插入一个或多个元素

array_unshift(array,value1,value2,value3…)函数用于向数组插入新元素。新数组的值将被插入到数组的开头

arr[xxx]的方法可用于添加自定义键名的元素,另外也可考虑合并两个数组。arr[xxx]的方法可用于添加自定义键名的元素,另外也可考虑合并两个数组。array3 = array_combine(array1,array1,array2);

对象(object)

语法:

<?php
class foo
{
function do_foo()
{
echo "Doing foo.";
}
}

$bar = new foo;
$bar->do_foo();


其它类型转对象

数组转换对象其中的属性通过键和相应的值来命名,除了数字键之外,除非迭代,否则这些数字键将不可访问。回调/可调用(Callbacks /可调参数)

回调/可调用(callback|callable)

定义

某些函数(如call _ user _ func()去回调某个方法或usort()去回调某个排序规则函数)接受用户定义的回调函数作为参数。函数不仅可以是简单的函数,还可以是对象方法,包括静态类方法。

资源(resource)

定义

一种特殊变量,保存了到外部资源的一个引用

资源释放

引用计数系统是Zend Engine的一部分,一个没有更多引用的资源会被自动检测到,并被垃圾收集器释放。出现这个原因,很少需要手动释放内存。(注:持久数据库链接是此规则的例外。它们不会被垃圾收集器销毁。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: