首页后端开发PHP怎么定义PHP函数,要注意什么

怎么定义PHP函数,要注意什么

时间2024-03-25 03:36:03发布访客分类PHP浏览343
导读:这篇文章给大家介绍了“怎么定义PHP函数,要注意什么”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“怎么定义PHP函数,要注意什么”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。...
这篇文章给大家介绍了“怎么定义PHP函数,要注意什么”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“怎么定义PHP函数,要注意什么”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。


 



目录
  • 概述
  • 函数参数与它们的数据类型
  • 函数与它们的返回值
  • 可选参数 VS 可空参数

概述

?php
function divide($dividend, $divisor){
    
    return $dividend / $divisor;

}
    
echo divide(12, 4);
    
echo divide('sa', 'sd');

这段代码乍一看没毛病,但是如果你向它传递「任意」参数,它就会出问题。

写出好的代码是一个学无止境的过程。让我们来改进我们编写 PHP 函数的方式。 看下上面的代码,想想第二个函数调用那里会发生什么情况? 它会接受你输入的任何参数,并且尝试执行然后抛出一个数学错误。 但是我们怎么才能让一个函数严格接收能使其正确执行的参数呢? 现代的 PHP 解决了这个问题,并且有更多妙法能让你的代码质量更进一层,没有 bug。

函数参数与它们的数据类型

你可以严格控制你的函数,使其只接收让它正确运行的参数。让我们改变上面的函数定义:

?php
function divide(int $dividend, int $divisor){
    
    return $dividend / $divisor;

}
    
echo divide(12, 4);
    
echo divide('sa', 'sd');

现在,第二次调用这个函数将会抛出一个致命错误,指出其需要的参数必须是整数类型。你可以用不同的方式处理参数。

?php
// 可选参数
function getName(string $firstName, string $lastName = ''){
    
    return $firstName . ' ' . $lastName;

}
    
echo getName('Muhammad', 'Nauman');
     // Muhammad Nauman
echo getName('Adam');
 // Adam
function divide(int $dividend, int $divisor = 2){
    
      return $dividend / $divisor;

}
    
echo divide(12, 4);
     // 3
echo divide(12);
 // 6
// 仅接收 Request 类的实例参数 $request
function getReuestParams(Request $request){
    
    return $request->
    only('name', 'email');

}

在定义的时候,将可选参数或带默认值的参数作为最后一个参数。

PHP 7.1 也给可迭代数据介绍了一种伪类型。它能接收任何可迭代的数据。

上图是使用了iterable数据类型的函数。

现在通过代码,我们可以控制的更多了,不是吗?没错,确实如此!

函数与它们的返回值

正如你可以控制传递给指定函数的参数类型一样,你也可以控制函数的返回值类型。它能确保你的函数总是返回同一个数据类型,并且不会崩溃。我们改变一下上面的代码:

?php
// 可选参数
function getName(string $firstName, string $lastName = '') : string {
    
    return $firstName . ' ' . $lastName;

}
    
echo getName('Muhammad', 'Nauman');
     // Muhammad Nauman
echo getName('Adam');
 // Adam
function divide(int $dividend, int $divisor = 2) : int {
    
      return $dividend / $divisor;

}
    
echo divide(12, 4);
     // 3
echo divide(12);
 // 6
// 仅接收 Request 类的实例 $request 作为参数
function getReuestParams(Request $request) : array {
    
    return $request->
    only('name', 'email');

}
    
// 返回 void 类型
$attribute = 2;
    
function changeAttribute(string &
$param, $value) : void {
    
    $param = $value;

}
    
changeAttribute($attribute, 5);
    
echo $attribute;
 // 5

PHP 逐渐引入了这些功能,如:5.1 版引入的数组类型作为参数,5.4 版引入的可调用类型(callable type),以及 7.1 版引入的 void 返回类型等。

可选参数 VS 可空参数

除了可选参数外,你还可以定义可空(nullable)参数,这意味着你可以定义一种可空参数类型。我们来看个例子:

?php
function nullableParameter(?string $name)
{
    
    return $name;

}
    
echo nullableParameter(null);
     // 不会返回任何东西
echo nullableParameter('Nauman');
     // Nauman
echo nullableParameter();
 // 致命错误
function nullableParameterWithReturnType(?string $name) : string
{
    
    return $name;

}
    
echo nullableParameter(null);
     // 致命错误,必须返回 string 类型
echo nullableParameter('Nauman');
 // Nauman
function nullableReturnType(string $name) : ?string
{
    
    return $name;

}
    
echo nullableParameter(null);
     // 致命错误,$name 应该是 string 类型
echo nullableParameter('Nauman');
     // Nauman

显然,可空参数不是可选参数,你必须传递一个值或者是null。我个人喜欢使用空值作为可选参数,但这取决于你的任务需求。


到此这篇关于“怎么定义PHP函数,要注意什么”的文章就介绍到这了,感谢各位的阅读,更多相关怎么定义PHP函数,要注意什么内容,欢迎关注网络资讯频道,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎么定义PHP函数,要注意什么
本文地址: https://pptw.com/jishu/652513.html
用PHP怎么编写扑克牌发牌的功能 vue指令和插值是怎样的,怎样应用

游客 回复需填写必要信息