PHP7函数类型限定是什么意思,有什么影响吗
Admin 2022-07-30 群英技术资讯 867 次浏览
本篇内容介绍了“PHP7函数类型限定是什么意思,有什么影响吗”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
本文主要通过简单的压测来探讨PHP7函数数据类型限定设定与否对性能的影响,另外,分享下自己两个工作中遇到的小问题及其应对,如有错误,恳请指正。
作用
推荐学习:《PHP视频教程》
function testInt(int $intNum){
var_dump($intNum);
}
testInt("123"); // int(123)运行环境
单机配置
AB
主要参数
/***** 1 普通接口 *****/
// CommonUserController
public function createUser(Request $request)
{
$this->validate($request, [
'name' => 'required|string',
'age' => 'required|integer',
'sex' => ['required', Rule::in([1, 2])],
]);
(new CommonUserModel())->createUser($request['age'], $request['name'], $request['sex'], $request['address'] ?? '');
return response()->json(['status' => 200, 'msg' => 'ok']);
}
// CommonUserModel
public function createUser($sex, $age, $name, $address)
{
if(empty($sex) || empty($age) || empty($name)) return false;
// 省略DB操作
return true;
}
/***** 2 类型限定接口 *****/
// TypeUserController
public function createUser(Request $request): JsonResponse
{
$this->validate($request, [
'name' => 'required|string',
'age' => 'required|integer',
'sex' => ['required', Rule::in([1, 2])],
]);
(new TypeUserModel())->createUser($request['age'], $request['name'], $request['sex'], $request['address'] ?? '');
return response()->json(['status' => 200, 'msg' => 'ok']);
}
// TypeUserModel
public function createUser(int $age, string $name, int $sex, string $address): bool
{
if(empty($sex) || empty($age) || empty($name)){
return false;
}
// 省略DB操作
return true;
}/*****第一次*****/ // 类型限定接口 rps=456.16 ab -n 100 -c 10 -p '/tmp/ab_post_data.json' -T 'application:json' http://www.laravel_type_test.com/api/type/create_user // 普通接口 rps=450.12 ab -n 100 -c 10 -p '/tmp/ab_post_data.json' -T 'application:json' http://www.laravel_type_test.com/api/common/create_user /*****第二次*****/ // 类型限定接口 rps=506.74 ab -n 1000 -c 100 -p '/tmp/ab_post_data.json' -T 'application:json' http://www.laravel_type_test.com/api/type/create_user // 普通接口 rps=491.24 ab -n 1000 -c 100 -p '/tmp/ab_post_data.json' -T 'application:json' http://www.laravel_type_test.com/api/common/create_user /*****第三次*****/ // 类型限定接口 rps=238.43 ab -n 5000 -c 150 -p '/tmp/ab_post_data.json' -T 'application:json' -r http://www.laravel_type_test.com/api/type/create_user // 普通接口 rps=237.16 ab -n 5000 -c 150 -p '/tmp/ab_post_data.json' -T 'application:json' -r http://www.laravel_type_test.com/api/common/create_user /*****第四次*****/ // 类型限定接口 rps=209.21 ab -n 10000 -c 150 -p '/tmp/ab_post_data.json' -T 'application:json' -r http://www.laravel_type_test.com/api/type/create_user // 普通接口 rps=198.01 ab -n 10000 -c 150 -p '/tmp/ab_post_data.json' -T 'application:json' -r http://www.laravel_type_test.com/api/common/create_user /*****第五次*****/ // 类型限定接口 rps=191.17 ab -n 100000 -c 150 -p '/tmp/ab_post_data.json' -T 'application:json' -r http://www.laravel_type_test.com/api/type/create_user // 普通接口 rps=190.55 ab -n 100000 -c 150 -p '/tmp/ab_post_data.json' -T 'application:json' -r http://www.laravel_type_test.com/api/common/create_user
类型限定对性能的提升没有预期的大,很微小,不过还是推荐这种写法
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php中get和post的不同:1、GET生成一个TCP数据包,POST生成两个TCP数据包。2、GET请求只能进行url编码,而POST支持多种编码方式。3、当浏览器退回时,GET是无害的,POST将再次提交请求。
thinkphp中有预处理。“ThinkPHP3.1”版本增加了对条件字符串进行预处理的支持,让ORM的安全性更加得以保证。方法:1、使用where方法对字符串条件预处理;2、使用query和execute方法对原生SQL查询方式预处理。
今天小编就为大家分享一篇修改Laravel自带的认证系统的User类的命名空间的步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
PHP中的运算符分为:算术运算符、递增/递减运算符、比较运算符、逻辑运算符、数组运算符、三元运算符等。本章节我们将讨论 PHP 中不同运算符的应用。
百钱百鸡的问题具体是:公鸡5元一只,母鸡3元一只,然后小鸡元三只,花了100元买了100只鸡,问公鸡、母鸡、小鸡各买了多少只?看到这个问题,我们可能首先想到的就是一种一种进行循环列举,然后筛选符合要求,也就是所谓的穷举法。由于我们要考虑性能,所以引入一个count记录循环的次数。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008