1. 数据类型的转换与检测技术
临时转换
- 方法:(想要转换成的类型)被转换的数据。
- 例子:
php <?php $id = '12'; $id = (int)$id; // string转int
自动转换
$num = '123' * 456;
echo $num; // 输出结果:579
$num = 'asd123' + 456;
echo $num; // 输出结果:456。
$num = '123' + '45a6';
echo $num; // 输出结果:168
$num = '123' . 'a456';
echo $num; // 输出结果:'123a456'
$num = 123 . 'a456';
echo $num; // 输出结果:'123a456'
自动转换的前提必须是算数运算符或者字符串连接,并且连接前后必须是标量。
算数运算时,bool true 转化为1,false转换为0;字符串如果是纯数字时,转换成对应的数值,如果不是纯数字的话,看非数字的字符在什么位置:在开头的话转换成0,在其他位置的话,只转换这个字符前面的字符为对应的数字。
建议不要让系统做自动转换,最好手动干预。
永久转换
使用函数:settype(变量, 要转换的数据类型) 进行转换。
不常用。
类型检测
- php7以下版本:
- is_numeric(); // 检测变量/参数是否是数值类型。
- is_int(); // 检测变量/参数是否是int类型。
- is_string(); // 检测变量/参数是否是字符类型。
- is_bool(); // 检测变量/参数是否是布尔类型。
- is_array(); // 检测变量/参数是否是数组类型。
等等…..
- php7以上版本:
<?php
function typeDetection(float $a, float $b): string {
return $a . '+' . $b . '=' . ($a + $b);
}
echo typeDetection(1, 2); // 3
echo typeDetection(1.2, 2.3); // 3.5
// echo typeDetection('a', 12); // Fatal error: Uncaught TypeError: Argument 1 passed to typeDetection() must be of the type float, string given
2. 变量声明与常用声明的方式与使用
变量声明
- 变量名以$为前缀,英文字母、数字、下划线组成。(PS:不能以数字开头,不建议使用一些无意义的变量名,如:$_,$a 等)。
命名方式
驼峰命名法:多英文单词时,首字母小写,其他首字母大写,如:typeDetection,多用变量,属性和方法。
蛇形命名:type_detection(), 多用于函数。
帕斯卡命名:全字母大写,如:TypeDetection, 多用于类,也叫大驼峰。
全大写,多用于常量。
使用
直接赋值: $a = 1;
- 可变变量赋值: $a = ‘b’; $aa = ‘你好,世界’;可以用$aa输出,也可以用$b输出。($b是通过$aa解析出来的)
3.预定义变量:$GLOBALS,$_SERVER 等。
常用声明
- define(常量名,值);
- const 常量名 = 值; const只能声明在全局和类中,而且const只支持字面量,不允许表达式。原因:const是在程序编译时创建的,程序编译时只能对能看到的数据进行分析。