开发者学堂课程【PHP 基础入门课程(下):强类型参数】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/710/detail/12637
强类型参数
内容介绍:
一、强制类型的概念
二、示例
三、小结
一、强制类型的概念
高级函数里的强制类型,学习强制类型的目的是为了了解可以利用强类型来规范函数的输入。了解强类型的作用。强类型有两个部分,一个叫参数的强类性,一个叫返回值的强类型。首先来了解强类型的参数,所谓的强类型参数是指在定义函数时给形参设定好对应的数据类型。
1、类型规范是 PHP 的8种类型。
2、强类型的作用有:
(1)实参必须是传入形参规定的类型。
(2)保护函数内部运行逻辑准确,这样不会因为类型错误而导致运行出问题。
(3)省去函数内部判定逻辑。
(4)提升解析效率。
(5)强类型语法:
function 函数名(类型 变量名){}
二、示例
#不限定类型
function add1($a,$b){
//两个参数的求和
return $a+ $b;
echo add1('1'.'bl');
#输出1(自动转换)
#强类型限定
function add2(float $a,float $b){
return $a + $b;}
echo add2('l','bl');
#报错:实参数据类型不正确。
实例:
<?php
#强类型参数
function add1($a,$b){
return $a + $b;
}
function add2($a,$b){
#必要判定:保证代码正确执行
if(!is_numeric($a) || !is_numeric($b)){
return false;
}
return$a + $b;
}
echo add1('a','1b');
运行 能拿到结果,但是系统会提示报错,
明显拿到的这种结果没有意义,数据结果本身存在问题,故该结果没有意义。添加代码:
<?php
#强类型参数
function add1($a,$b){
return $a + $b;
}
function add2($a,$b){
#必要判定:保证代码正确执行
if(!is_numeric($a) || !is_numeric($b)){
return false;
}
return$a + $b;
}
echo add1('a','1b');
var_dump(add2('a','1b'));
//添加代码
上图结果为 bool(false),上述类型为传统做法。
#强制参数类型
function add3(float $a,float $b){
//如果用整型将 float 改为int 即可
return $a +$b;
// echo add3('a','1b');
//错误结果
运行结果如上图,系统提示一个致命错误,就导致代码不能上传到服务器,因为是有错误的,所以此时一定要重新调整好,就可以让代码更安全,错误信息,参数1必须是一个 float 类型,string 所以是错的.
正确方式:
echo add3(1,2.1);
//强制将 int 型转换为 float 型
三、小结
1、强类型是在形参定义时指定数据类型。
(1)规定实参必须传入相应类型:否则报错(致命错误)。
(2)保护函数内部结构运行正确。
(3)节省开发时间,不需要在内部进行逻辑判定
(4)可以提升 PHP 的解析效率(不用转换)(效率差距很难判定出来)
2、强类型的选择
PHP 是弱类型语言,会自动转换类型,一般可以不用(在做核心架构或者比较高的访问量时,尽可能去使用强类型。)
不想在内部进行多逻辑判定,可以使用强类型参数。