PHP 简介02-数据类型转化
1.几个常用函数
1.释放内存:unset();
2.检测一个变量是否为空:empty();
实质上为检测是否与false等价 空=true 非空=false
3.检测一个变量是否设置:isset();
实际上为检测是否为null或未定义变量 已设置:true 未设置:false
1 | $a=10; #未空,已设置 |
2. 输出方式
PHP中常用输出方式常见的有4种:
1.echo
为PHP基本语法,支持int,float,string,resource类型的数据输出
格式:echo '输出内容';
2.print / print()
print为基本语法结构,print()为函数,返回值为int
支持int,float,string,resource类型的数据输出
格式:print 输出内容 print(输出内容);
3.print_r()
print_r() 为函数,返回值为bool
支持int,float,string,array,resource,object类型的数据输出
4.var_dump()
var_dump()为函数,无返回值。可以支持任何类型的数据
print_r() 和 var_dump() 的区别:
print_r() 理论上可以输出无数个数据,但实际上受到内存大小的限制
var_dump() 最多只能输出128条数据,其他的隐藏
print_r() 的美化:
1 | print_r('<pre>'); |
3. 数据类型转化 DateType
运算本质是同类型的数据之间的运算
标量数据的转换分为两种:自动类型转换 和 强制类型转换
1.自动类型转换:隐式转换
布尔型(bool)转为整型(int)
1
2
3var_dump(true+10); #11 true->1
var_dump(false+10); #10 false->0布尔型(bool)转为浮点型(float)
1
2
3var_dump(true+10.5); #11.5 true->1.0
var_dump(false+10.5); #10.5 false->0.0字符串(string)转为整型(int)
1
2
3
4
5
6var_dump('abc'+10); #10
var_dump('123'+10); #133
var_dump('1a2b'+10); #11
var_dump('a1b3'+10); #10
var_dump('12av'+10); #22
- 从前往后,保留前面的数字,从第一个非数字开始向后全部抛弃(包括后面的数字)
字符串(string)转为浮点型(float)
1
2
3
4
5
6
7
8
9var_dump( '1.2' + 10.5 ); #11.7
var_dump( '1a.2' + 10.5 ); #11.5
var_dump( 'a1.2' + 10.5 ); #10.5
var_dump( '1.2e3' + 10.5 ); #1210.5
var_dump( '1.2e3e4' + 10.5 ); #1210.5
var_dump( '1.2.3.4' + 10.5 ); #11.7
- 从前往后,保留前面的数字,从第一个非数字开始向后全部抛弃(包括后面的数字)
- 识别第一个科学计数法和第一个小数点
整型(int)转为浮点型(float)
1
2
3var_dump( 1 + 2.5 ); # 3.5 1 -> 1.0
2.强制类型转换:强制转换
临时转换
通过运算符来强制转换(值适用于标量和复合数据,不包含特殊类型的数据)
1
2
3
4
5
6
7
8var_dump((int)$str);
var_dump((float)$str);
var_dump((bool)$str);
var_dump((string)$str);
var_dump((object)$str);
var_dump((array)$str);
通过函数来强制转换
1
2
3
4
5
6var_dump(intval($str));
var_dump(floatval($str));
var_dump(boolval($str));
var_dump(strval($str)); #字符串转化是strval,而不是stringval
永久转换
通过函数
settype(变量名,类型)来永久转换数据,之后数据不一定能转换回原数据1
2
3
4
5
6
7settype($str,'int');
var_dump($str);
settype($str,'string');
var_dump($str);
4. 常量 Define
1.常量:经常固定不变的量(constant)
2.格式:格式:const 常量名=常量值; 或者 define(常量名,常量值)
1 | const CHINA = '中国'; |
注意:
常量名默认区分大小写,推荐使用大写,与变量区分;
define函数的完整格式为define(常量名,常量值,bool值),其中总bool值默认值为false,代表区分大小写,若为true则不区分大小写;
3.魔术常量:
__FILE__ 当前文件路径
__LINE__ 当前代码行号
__DIR__ 当前文件目录
1 | var_dump(__FILE__); #:string 'D:\wamp\www\XIA\0409\08-define.php' (length=34) |
4.预定义常量:
PHP_INT_MAX 显示最大整型常量
PHP_INT_MIN 显示最小整型常量
M_PI 圆周率
PHP_VERSION 显示当前PHP版本号
PHP_OS 显示当前使用操作系统(Windows都显示WINNT)
1 | var_dump(PHP_INT_MAX); #:int 2147483647 |
5. 运算符 Operation
PHP中运算符主要有以下七种:
- 算术运算符
- 自增/自减运算符
- 赋值运算符
- 比较运算符
- 拼接运算符
- 逻辑运算符
- 三元运算符
1.算术运算符:
加 减 乘 除 取模(取余)
+ - * / %
取模(%)详解:
1)普通取模:
1 | var_dump(5%2); #1 |
2)高阶取模
①取模的正负:取决于被除数的正负
1 | var_dump(5%2); #1 |
②取模结果的范围:x~y
1 | var_dump(0%3); #0 # %3 |
1 | var_dump(0%5); #0 # %5 |
若需求2~5,如何才能达到需求:
1 | 0 ~ ? #?=5-2=3 0~3为%4的结果 |
推理到x~y,则有:%(y-x+1)+x
1 | 0 ~ ? # ?=y-x 为%[(y-x)+1]的结果 |