0
点赞
收藏
分享

微信扫一扫

PHP数据类型

niboac 2022-01-09 阅读 67

一 变量

变量的使用

定义变量

<?php
$a = 2;
$A = 'Hello';

删除变量

unset($a);

变量的种类

预定义变量

这里列举几个重要的预定义变量

$_ GET: 获取所有表单以get方式提交的数据。
$_ POST: POST提交的数据都会保存在此。
$_ REQUEST: GET和PQST提交的都会保存。
$GLOBALS: PHP 中所有的全局变量。
$_ SERVER:服务器信息。
$_ _SESSION: session 会话数据+
$_ COOKIE: cookie 会话数据。
S_ ENV: 环境信息+
$_ FILES: 用户上传的文件信息。

可变变量

$A = 'Hello';
$AA = 'A';
echo $$AA;

变量传值

<?php
//值传递
$a = 1;
$b = $a;
$a = 2;
echo $a.$b.'<br>';
//引用传递
$c = 1;
$d = &$c;
$c = 2;
echo $c.$d.'<br>';

输出结果为

21

22

常量

常量的定义和使用

//常量的定义
//1.使用函数定义
define('-_-','smile');
//2.使用const
const PI = 3.14;
echo PI;
echo constant('-_-');
//特殊字符使用需要使用constant函数

常量的使用与变量相同,定义时必须赋值。

如果常量名为特殊符号,必须使用define来定义。

系统常量

PHP_ _VERSION: PHP 版本号。
PHP_ INT_ SIZE: 整形大小。
PHP_ _INT_ MAX:整形能表示的最大值。

魔术系统常量

_DIR__ :当前被执行的脚本所在电脑的绝对路径。
_FILE__ :当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)。
_LINE_ : 当前所属的行数。
_NAMESPACE_ : 当前所属的命名空间。
_CLASS_ :当前所属的类。
_METHOD_ :当前所属的方法。 

内存分区

在内存中,通常有以下几个分区:

栈区:程序可以操作的内存部分(不存数据,运行程序代码),少但是快。

代码段:存储程序的内存部分(不执行)。

数据段:存储普通数据(全局区和静态区)。

堆区:存储复杂数据,大但是效率低。

数据类型

数据类型分类

简单数据类型

整型: int/integer, 系统分配4个字节存储。

在PHP中提供了四种整型的定义方式:十进制定义,二进制定义,八进制定义和十六进制定义。

$a= 120;       //10进制
$a=0b110;       //2进制
$a=0120;        //8进制
$a=0x120;      //16进制

//默认输出时会转换为十进制

浮点型: float/double,系统分配8个字节存储,表示小数或者整型存不下的整数。

字符串型: string, 系统根据实际长度分配。

布尔型: bool/boolean, 只有两个值: true 和false。

复合数据类型

对象类型: object, 存放对象。

数组类型: array, 存储多个数据(一次性)。

特殊数据类型

资源类型: reresource, 存放资源数据(PHP外部数据,如数据库、文件)。

空类型: NULL, 只有一个值就是NULL (不能运算)。

类型转换

转布尔类型

 其他类型转数值

1、布尔true为1,false为0;。
2、字符串转数值
以字母开头的字符串,永远为0。
以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)。

判断数据类型

判断是否为该类型

<?php
$p = 3.14;
var_dump(is_int($p));

输出bool类型不能使用echo,需要使用var_dump()函数。

判断是何类型

Gettype():获取类型,得到的是该类型对应的字符串。

Settype():设定数据类型。

注:与换强制转不同

1、 强制转换(类型)变量名,是对数据值复制的内容进行处理(不会处理实际存储的内容)。

2、settype() 会直接改变数据本身。

错误抑制符

在PHP中有一些错误可以提前预知,但是这些错误可能无法避免,但是又不希望报错给用户看,可以使用错误抑制符处理。
@:在可能出错的表达式前面使用@符号即可。

<?php
$p = 3.14;
$q = 0;
//$m = $p / $q;      //报错
@$m = $p / $q;

计算机码 

原码:数据本身从十进制转换成二进制得到的结果。
        正数:左边符号位为0
        负数:左边符号位为10
反码:针对负数,符号位不变,其他位取反。
补码:针对负数,反码+1。

位运算符

&:按位与,两个位都为1,结果为1,否则为0。
|:按位或,两个有一个为1,结果为1。
~:按位非,一个位如果为1则变成0,否则反之。
^:按位异或,两个相同则为0,不同则为1。
<<:按位左移,整个位(32 位),向左移动- -位,右边补0。
>>: 按位右移,整个位向右移动一位,左边补符号位对应内容(正数补0,负数补1)。

运算符优先级

举报

相关推荐

0 条评论