广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >浅谈定义一个PHP函数
  • 214
分享到

浅谈定义一个PHP函数

2024-04-02 19:04:59 214人浏览 泡泡鱼
摘要

目录概述函数参数与它们的数据类型函数与它们的返回值可选参数 VS 可空参数概述 <?PHP function divide($dividend, $divisor)

概述


<?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函数的资料请关注编程网其它相关文章!

--结束END--

本文标题: 浅谈定义一个PHP函数

本文链接: https://www.lsjlt.com/news/127010.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈定义一个PHP函数
    目录概述函数参数与它们的数据类型函数与它们的返回值可选参数 VS 可空参数概述 <?php function divide($dividend, $divisor)...
    99+
    2022-11-12
  • 怎么定义一个javascript函数
    这篇文章主要介绍“怎么定义一个javascript函数”,在日常操作中,相信很多人在怎么定义一个javascript函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么定义...
    99+
    2022-10-19
  • 浅谈shell数组的定义及循环
    shell中数组的定义及遍历,先直接看示例: #!/bin/sh #定义方法一 数组定义为空格分割 arrayWen=(a b c d e f) #定义方法二 arrayXue[0]="m" arrayXue[1]=...
    99+
    2022-06-04
    shell 定义 循环
  • 怎么用PHP define()函数定义一个变量
    使用PHP的define()函数可以定义一个常量,而不是变量。常量的定义语法如下:```define(name, value, ca...
    99+
    2023-10-10
    PHP
  • 浅谈一下Servlet的定义以及运行原理
    目录1.什么是servlet1.1 扩展web服务器端功能1.2 servlet组件2.如何写一个servlet?3.servlet是如何运行的?4.常见问题4.1 状态码4.2 4...
    99+
    2023-03-24
    Servlet定义 Servlet原理
  • javascript中怎么定义一个函数
    这篇文章主要讲解了“javascript中怎么定义一个函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中怎么定义一个函数”吧! ...
    99+
    2022-10-19
  • 浅谈numpy 函数里面的axis参数的含义
    前言 numpy支持对矩阵和数组进行运算,因此很多numpy的很多运算都需要指定操作的维数参数axis(当然这些axis都有带默认值的),本博客以numpy.sum求和函数为例,具体...
    99+
    2022-11-12
  • 浅谈java自定义中类两个对象的比较
    目录 实现比较两个对象是否相同 1.前置代码 1.学生类 2.示例  3.输出  4.原因 2.那么我们要怎么做呢 1.对Student类中重新实现quals方法(即对equals方法重写)  2.完整代码如下: 3.具体操作 4.演示 ...
    99+
    2023-09-20
    java 开发语言 学习 学习方法 程序人生 intellij-idea
  • javascript中怎么定义一个匿名函数
    这篇“javascript中怎么定义一个匿名函数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2022-10-19
  • C++中怎么定义一个构造函数
    C++中怎么定义一个构造函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C++构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后...
    99+
    2023-06-17
  • php如何定义一个常量数组
    在php中定义常量数组的方法有以下几种使用eval()函数定义常量数组define('BEST_PHPER',"return array('name'=>'张三','address'=>'china');");$BEST_PHPER=eva...
    99+
    2022-10-10
  • python如何在一个类中定义多个构造函数
    这篇文章将为大家详细讲解有关python如何在一个类中定义多个构造函数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在一个类中定义多个构造函数函数重载是编程语言(不含 P...
    99+
    2022-10-19
  • Promise中怎么自定义一个GET请求函数
    这篇文章给大家介绍Promise中怎么自定义一个GET请求函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。语法基本new Promise( function(re...
    99+
    2022-10-19
  • 浅谈用Python实现一个大数据搜索引擎
    搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。 布隆过滤器 (B...
    99+
    2022-06-04
    浅谈 搜索引擎 数据
  • php如何定义一个空对象
    在php中定义空对象的方法有以下几种使用new Cfg()定义空对象$girl = new Cfg();$girl->name = 'tom';echo $girl->name . "";使用new stdClass()语句定义空对象$bo...
    99+
    2022-10-05
  • python如何定义一个复数
    在Python中,可以使用`complex(real, imag)`函数来定义一个复数,其中`real`表示实部,`imag`表示虚...
    99+
    2023-08-15
    python
  • python如何定义函数返回值只取其中一个
    小编给大家分享一下python如何定义函数返回值只取其中一个,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!看代码吧~def test():    return 1...
    99+
    2023-06-15
  • php反转义函数是哪个
    这篇“php反转义函数是哪个”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“php反转义函数是哪个”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。ph...
    99+
    2023-06-06
  • 如何在PHP中定义函数
    在PHP中定义函数,可以让我们更好地组织代码,重复利用代码,以及提高代码的可读性和可维护性。以下是一些操作步骤和注意事项,帮助你在PHP中定义函数。函数名称:函数名称是定义函数的关键,通常应该简明扼要,清晰易懂,能够体现函数的功能和作用。在...
    99+
    2023-05-21
    函数参数 PHP函数定义 函数返回值
  • jQuery如何绑定一个函数到一个事件
    这篇文章将为大家详细讲解有关jQuery如何绑定一个函数到一个事件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。绑定一个函数到一个事件$('#foo').bind('click&#...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作