强类型参数|学习笔记

简介: 快速学习强类型参数

开发者学堂课程【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');

运行 能拿到结果,但是系统会提示报错,image.png

明显拿到的这种结果没有意义,数据结果本身存在问题,故该结果没有意义。添加代码:

<?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'));//添加代码

image.png

上图结果为 bool(false),上述类型为传统做法。

#强制参数类型

function add3(float $a,float $b){//如果用整型将 float 改为int 即可

return $a +$b;

// echo add3('a','1b');//错误结果

image.png

运行结果如上图,系统提示一个致命错误,就导致代码不能上传到服务器,因为是有错误的,所以此时一定要重新调整好,就可以让代码更安全,错误信息,参数1必须是一个 float 类型,string 所以是错的.

正确方式:

echo add3(1,2.1);//强制将 int 型转换为 float 型

image.png


三、小结

1、强类型是在形参定义时指定数据类型。

(1)规定实参必须传入相应类型:否则报错(致命错误)。

(2)保护函数内部结构运行正确。

(3)节省开发时间,不需要在内部进行逻辑判定

(4)可以提升 PHP 的解析效率(不用转换)(效率差距很难判定出来)

2、强类型的选择

PHP 是弱类型语言,会自动转换类型,一般可以不用(在做核心架构或者比较高的访问量时,尽可能去使用强类型。)

不想在内部进行多逻辑判定,可以使用强类型参数。

相关文章
|
2月前
|
Java 编译器
[java进阶]——泛型类、泛型方法、泛型接口、泛型的通配符
[java进阶]——泛型类、泛型方法、泛型接口、泛型的通配符
|
2月前
|
存储
泛型进阶: 泛型方法 & 通配符
泛型进阶: 泛型方法 & 通配符
|
4月前
|
存储 安全 算法
C# 泛型:类型参数化的强大工具
【1月更文挑战第7天】本文将深入探讨C#语言中的泛型编程,包括泛型的定义、用途、优势以及实际应用。通过类型参数化,泛型允许开发者编写更加灵活且可重用的代码,同时提高程序的类型安全性和性能。本文将通过示例代码和详细解释,帮助读者更好地理解泛型在C#中的重要性和实用性。
|
5月前
|
Java Go
【Java 泛型方法】泛型方法的定义和使用,泛型的通配符和泛型的上下限,泛型的注意事项
【Java 泛型方法】泛型方法的定义和使用,泛型的通配符和泛型的上下限,泛型的注意事项
|
9月前
|
Java
java泛型:泛型类,泛型接口,泛型方法,泛型集合
java泛型:泛型类,泛型接口,泛型方法,泛型集合
|
Java
Java泛型02:自定义泛型类、泛型方法
Java泛型02:自定义泛型类、泛型方法
454 0
|
Java
Java泛型04:自定义泛型类的使用
Java泛型04:自定义泛型类的使用
130 0
|
安全 Java
Java中泛型概述、泛型方法、泛型接口、类型通配符及可变参数的使用
泛型概述、泛型方法、泛型接口、类型通配符及可变参数的使用的简单示例
116 0
Java中泛型概述、泛型方法、泛型接口、类型通配符及可变参数的使用
|
索引
泛型,枚举,的学习笔记
泛型,枚举,的学习笔记
181 0
泛型,枚举,的学习笔记
Java进阶:【泛型】认识泛型,泛型方法,泛型类,泛型接口和通配符(2)
Java进阶:【泛型】认识泛型,泛型方法,泛型类,泛型接口和通配符(2)
Java进阶:【泛型】认识泛型,泛型方法,泛型类,泛型接口和通配符(2)