PHP数据

1、数据类型分类(三大类八小类)

1.1、基本数据类型 1.1.1、整型(integer) 可以用四种格式规定整数:二进制(bin)、十进制( dec)、十六进制(前缀是 0x、hex)或八进制(前缀是 0、oct)

"; $x = -345; // 负数 var_dump($x); echo "
"; $x = 0x8C; // 十六进制数 var_dump($x); echo "
"; $x = 047; // 八进制数 var_dump($x); ?>

系统默认以10进制输出数值、可以使用系统函数修改,系统函数由bin、oct、dec、hex组合而成 一般组合:如二进制转八进制:binoct() 只有一个特殊组合:二进制转十六进制:bin2hex()

1.1.2、浮点型(float) 浮点数是有小数点或指数形式的数字。

"; $x = 2.4e3; var_dump($x); echo "
"; $x = 8E-5; var_dump($x); ?>

1.1.3、布尔型(boolean) true 或 false 逻辑运算符:and、or、xor、&&、||、! 注意:echo布尔类型的值时结果为1或空

1.1.4、字符串型(string) 字符串是字符序列,比如 "Hello world!"。 字符串可以是引号内的任何文本。可以使用单引号或双引号

格式型字符串写法:newdoc(对应单引号)、heredoc(对应双引号)

newdoc:

$str1 = <<<'END'

* * * * * * * * * *

END;

heredoc: $str2 = <<<END

$str1

END;

字符串运算符 . 串接运算符 .= 串接赋值运算符

php字符串支持负数下标,-1代表最后一个字符的下标

1.2、复合数据类型

1.2.1、数组(array) 数组在一个变量中存储多个值。

1.2.1.1、数组创建 索引数组

自动分配: $cars=array("Volvo","BMW","SAAB"); $cars=["Volvo","BMW","SAAB"];

手动分配1: $cars[0]="Volvo"; $cars[1]="BMW"; $cars[2]="SAAB";

手动分配2(与1等价): $cars[]="Volvo"; $cars[]="BMW"; $cars[]="SAAB";

关联数组(键值对) 自动分配: $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

手动分配: $age['Peter']="35"; $age['Ben']="37"; $age['Joe']="43"; echo "Peter is " . $age['Peter'] . " years old.";

多维数组 多维数组是数组的嵌套,即数组中又包含数组

可以在 for 循环中使用另一个 for 循环,来获得 $cars 数组中的元素(仍需使用两个索引):

1.2.1.2、数组相关运算符

+ 联合 $x 和 $y 的联合(但不覆盖重复的键)

== 相等 如果 $x 和 $y 拥有相同的键/值对,则返回 true。

=== 全等 如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。

!=/<> 不相等

!== 不全等

1.2.1.3、数组遍历

foreach循环

语法: foreach ($array as $value) { code to be executed; }

例子:

索引数组:

$colors = array("red","green","blue","yellow");
foreach ($colors as $value) { 
    echo "$value "; 
}

关联数组:

$age = array("Matin"=>"35","Steve"=>"37","Peter"=>"43"); 
foreach($age as $x=>$x_value) { 
    echo "Key=" . $x . ", Value=" . $x_value; 
    echo "<br>"; 
} 

1.2.1.4、常用数组函数

获得数组的长度:count($arr)

数组排序 sort($arr) - 以升序对数组排序

rsort($arr) - 以降序对数组排序

asort($arr) - 根据值,以升序对关联数组进行排序

ksort($arr) - 根据键,以升序对关联数组进行排序

arsort($arr) - 根据值,以降序对关联数组进行排序

krsort($arr) - 根据键,以降序对关联数组进行排序

1.2.2、对象(object) 对象是存储数据和有关如何处理数据的信息的数据类型。 使用 class 关键词声明对象的类。类是包含属性和方法的结构。 在对象类中定义数据类型 在该类的实例中使用此数据类型:

class Cat{
    public $color;
    public function __construct($color){
        $this->color = $color; 
    }
    function what_color() { 
        return $this->color; 
    } 
}         

1.3、特殊数据类型

1.3.1、资源型(resource) 外部资源数据,如数据库/文件资源

1.3.2、空型(null) 特殊的 NULL 值表示变量无值。

2、类型转换

2.1、自动转换

字符串->整型 :(用+运算符时)echo $str+3;

整型->字符串 :(用.运算符时)echo $num."abc";

所有数据类型->布尔型 判断条件时:if($num){echo "真"}else{echo "假"}

0、0.0、""、"0"、false、array()、null 以上值会判断为假,其余值都为真

2.2、强制转换 (int)$num,(float)$num,(bool)$num,(string)$num,(array)$num,(object)$num

3、变量的类型测试:

gettype($var)获取类型(不建议使用,不完善,参见首册)

is_int($var) is_float($var) is_bool($var) is_string($var) is_array($var) is_object ($var) is_resource($var) is_null($var);

is_numeric($var) 检测变量是否为数字或数字字符串

is_scalar($var) 检测变量是否是一个标量。标量变量是指那些包含了 integer、float、string 或 boolean的变量

is_callable($var) //测试函数,

语言结构不是函数

原文地址:https://www.cnblogs.com/chuanzi/p/10357634.html