我的编程空间,编程开发者的网络收藏夹
学习永远不晚

浅谈定义一个PHP函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

浅谈定义一个PHP函数

概述


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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

浅谈定义一个PHP函数

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

下载Word文档

猜你喜欢

在php中如何定义一个函数

php 中定义函数的格式为:function function_name(parameters) {// 函数体}在 PHP 中定义函数定义格式:function function_name(para
在php中如何定义一个函数
2024-04-27

怎么用PHP define()函数定义一个变量

使用PHP的define()函数可以定义一个常量,而不是变量。常量的定义语法如下:```define(name, value, case-insensitive)```其中,- name:常量的名称,必须是一个有效的标识符(字母、下划线开头
2023-10-10

浅谈shell数组的定义及循环

shell中数组的定义及遍历,先直接看示例:#!/bin/sh #定义方法一 数组定义为空格分割 arrayWen=(a b c d e f) #定义方法二 arrayXue[0]="m" arrayXue[1]="n" array
2022-06-04

浅谈 PHP 函数的异步编程

在 php 中,异步编程允许在不阻塞执行流的情况下执行耗时任务。实现异步编程的技术包括:回调函数:函数指针,在另一个函数执行完成后执行代码。协程:轻量级多任务机制,允许在同一线程中切换多个函数执行。并行化:使用不同的线程或进程同时执行多个任
浅谈 PHP 函数的异步编程
2024-05-05

浅谈一下Servlet的定义以及运行原理

相信有很多刚入行的朋友会疑惑Servlet到底是个什么意思,那么这篇文章就来浅谈一下到底什么是Servlet,以及Servlet的原理与如何写一个Servlet,,需要的朋友可以参考下
2023-03-24

Torch中怎么定义一个损失函数

在Torch中定义一个损失函数,一般是通过继承nn.Module类来实现的。以下是一个示例:import torchimport torch.nn as nnclass CustomLoss(nn.Module):def __init_
Torch中怎么定义一个损失函数
2024-03-07

C++中怎么定义一个构造函数

C++中怎么定义一个构造函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C++构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后
2023-06-17

如何在PyTorch中定义一个损失函数

在PyTorch中定义损失函数非常简单。你可以使用torch.nn模块中提供的各种损失函数,也可以自定义自己的损失函数。下面是一个简单的示例,展示如何在PyTorch中定义一个自定义的损失函数:import torch# 自定义损失函数
如何在PyTorch中定义一个损失函数
2024-03-14

PHP如何定义一个常量

PHP常量用于存储程序中不变的值。常量可以通过define()函数或const关键字定义,推荐使用const关键字,语法更简洁。常量最佳实践包括:使用大写名称、避免特殊字符、使用文档注释。PHP提供了许多预定义常量,例如__FILE__和__LINE__。常量的使用可以提高代码的可维护性和可读性。
PHP如何定义一个常量
2024-04-02

如何自定义 PHP 函数?

自定义 php 函数包括以下步骤:使用 function 关键字声明函数。指定函数名。定义参数(可选)。使用 return 语句返回数据(可选)。调用函数。如何自定义 PHP 函数:打造灵活的代码PHP 函数是强大的工具,可重复使用代码块
如何自定义 PHP 函数?
2024-04-10

php中常用的定义数组的函数是哪个

array() 函数是 php 中定义数组的常用函数。它接收一个参数列表,其中每个元素对应数组中的值。数组中的键值可以省略(默认为从 0 开始递增),元素顺序很重要,数组可以嵌套。PHP 中常用的定义数组的函数array() 函数是 PH
php中常用的定义数组的函数是哪个
2024-04-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录