函数是一段可重复使用的代码块,可以将一系列操作封装起来,使代码更加模块化、可维护和可重用,来大大节省我们的开发时间和代码量,提高编程效率。在PHP中你可以使用:

  • 内置函数(如 strlen()array_merge()

  • 自定义函数(如 sayHello()

内置函数

PHP 拥有大量内置函数(Built-in Functions),这些函数为开发者提供了强大的功能,涵盖字符串处理、数组操作、数学运算、文件操作、会话管理、网络请求、正则表达式、时间日期等。

内置函数有很多,比如之前count() 就是一个内置函数,除此之外还有获取当前时间的 time()函数,date('Y-m-d H:i:s')函数等。后面有机会会写,这边就不一一列举了。我们这篇文章主要来说说自定义函数。

函数定义和调用

PHP 函数准则:

  • 函数的名称应该提示出它的功能

  • 函数名称以字母或下划线开头(不能以数字开头)

functionfunctionname(参数1, 参数2, ...) {// 函数体:写你想要执行的代码return返回值;
}//调用
functionName();
示例:
<?phpfunctiontest(){echo'我的名字是:Wolven' . "<br>";
}test();// 获取当前的时间
functionnowTime(){
echodate('Y-m-d H:i:s');
}nowTime();
?>

图片

添加参数

为了给函数添加更多的功能,我们可以添加参数,参数类似变量。

<?php
functionmyName($name){
echo"我的名字是:$name";
}myName("wolven");    
?>

图片

示例
<?php
// 获取当前的时间
functionnowTime($type){if($type=="time"){echodate('Y-m-d H:i:s');}elseif($type=="day"){echodate('Y-m-d');}
}nowTime("time");    
?>

图片

多个参数
<?php
functionplus($a,$b)
{echo$a+$b;
}plus(2,3);    
?>

图片

严格模式

我们将上述代码稍微做一点小改动:

<?php
functionplus($a,$b)
{echo$a+$b;
}plus('2','3');    
?>

这边我们将传入参数修改为字符形式,但是这个时候我们在运行这个程序的时候就会发现:PHP直接成功地将两个字符识别为数字,并成功相加了。PHP 是一种 弱类型语言,在 PHP 中,如果参与运算的值是字符串但内容是数字(比如 '2'),PHP 会自动将它们转换成数字再相加。

图片

如果我们不想让PHP自动识别怎么办?这个时候就可以使用如下方法:

//严格模式
declare(strict_types=1);
functionplus(int $a,int $b)
{echo$a+$b;
}plus('2','3');

这段 PHP 代码使用了严格类型声明 declare(strict_types=1);开启 严格类型检查模式,意味着函数参数必须是完全匹配的类型,否则会抛出 TypeError 错误。此处plus 是一个接收两个整数参数的函数,输出它们的和,但是实际上传入的是两个字符串,所以这里会抛出一个错误:

图片

返回值

return , 可有可无,但一般都有

functionplus($a,$b)
{return$a+$b;
}echoplus(2,3);

资源分享

夸克网盘「PHP项目实战教程」链接:https://pan.quark.cn/s/9c979e367c5f

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85077.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85077.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/85077.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【FastAPI高级实战】结合查询参数与SQLModel Joins实现高效多表查询(分页、过滤、计数)

想象一下&#xff0c;你正在开发一个超酷的Web应用&#xff0c;比如一个博客平台或者一个在线商店。你的API不仅要能把数据&#xff08;比如文章列表、商品信息&#xff09;展示给用户&#xff0c;更要聪明到能理解用户的各种“小心思”&#xff1a;用户可能想看最新的文章、搜…

华为OD-2024年E卷-通过软盘拷贝文件[200分] -- python

问题描述&#xff1a; 有一名科学家想要从一台古董电脑中拷贝文件到自己的电脑中加以研究。但此电脑除了有一个3.5寸软盘驱动器以外&#xff0c;没有任何手段可以将文件持贝出来&#xff0c;而且只有一张软盘可以使用。因此这一张软盘是唯一可以用来拷贝文件的载体。科学家想要…

Keepalived 高可用,nginx + keepalived , lvs + keepalived、 数据库+keepalived

keepalived 官网 Keepalived 可以用来防止服务器单点故障的发生 # 原理 是基于VRRP协议实现的&#xff0c;当backup收不到vrrp包时&#xff0c;就认为master宕机了&#xff0c;这时就需要根据VRRP的优先级来选举一个backup 当master&#xff0c;就实现服务的HA&#xff08;高…

开疆智能Devicenet转ModbusTCP网关连接台达从站通讯模块配置案例

本案例是通过开疆智能Devicenet转ModbusTCP网关连接台达Devicenet从站通讯模块DVPDT02-H2的配置案例&#xff0c;网关作为ModbusTCP服务器和Devicenet主站&#xff0c;连接台达Devicenet从站&#xff0c; 配置过程&#xff1a; 首先配置Devicenet从站&#xff0c;先设置从站De…

网络NAT是什么

网络NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;是一种用于计算机网络中的技术&#xff0c;主要目的是在私有网络与公有网络&#xff08;比如互联网&#xff09;之间转换IP地址&#xff0c;实现私有网络中的多台设备通过一个公网IP访问外…

React状态管理——react-redux

目录 一、redux介绍 二、安装 三、基本实现步骤 3.1 创建Action Types 3.2 创建counterAction 3.3 创建counterReducer 3.4 结合所有Reducer 3.5 创建store 3.6 入口文件中提供store 3.7 在组件中的使用 3.8 使用thunk实现异步支持 3.8.1 安装 3.8.2 在counterAct…

Java 零工市场小程序 | 灵活就业平台 | 智能匹配 | 日结薪系统 | 用工一站式解决方案

在就业形势如此严峻的情况下&#xff0c;很多小伙伴都会选择零工的工作方式来赚取外快&#xff0c;很多用人单位也会因为职为短暂空缺或是暂时人手不够而选择招用兼职人员。 而Java 作为企业级开发的主流语言&#xff0c;以其卓越的性能和稳定性著称。把零工的需求&#xff08…

数据可视化——一图胜千言

第04篇&#xff1a;数据可视化——一图胜千言 写在前面&#xff1a;大家好&#xff0c;我是蓝皮怪&#xff01;前面几篇我们聊了统计学的基本概念、数据类型和描述性统计&#xff0c;这一篇我们要聊聊数据分析中最直观、最有趣的部分——数据可视化。你有没有发现&#xff0c;很…

1.1 Linux 编译FFmpeg 4.4.1

一、安装编译工具 sudo apt install -y autoconf automake build-essential cmake git pkg-config nasm yasm libtool zlib1g-dev说明&#xff1a; autoconf&#xff1a;生成 configure 脚本&#xff0c;用于自动配置源码。automake&#xff1a;与 autoconf 配合&#xff0c;…

【图片识别改名】如何批量识别大量图片的文字并重命名图片,基于WPF和京东OCR识别接口的实现方案

应用场景 在企业文档管理、数字图书馆、电商商品管理等场景中&#xff0c;经常需要处理大量图片中的文字信息。例如&#xff1a; 电商平台需要将商品图片中的型号、规格等信息提取出来作为文件名图书馆需要将扫描的图书页面识别为文字并整理归档企业需要将纸质文档电子化并按…

简历模板2——数据挖掘工程师5年经验

姓名 / Your Name 数据挖掘工程师 | 5年经验 | 推荐/风控/图模型 &#x1f4de; 138-XXXX-XXXX | ✉️ your.emailexample.com | &#x1f310; github.com/yourname | &#x1f4cd; 北京 &#x1f3af; 个人简介 / Summary 5年大厂数据挖掘经验&#xff0c;硕士学历。擅长推…

CSS3 渐变效果

1. 引言 CSS3 渐变能够在指定颜色之间创建平滑过渡效果。这种设计元素不仅能为网页增添丰富的视觉层次&#xff0c;更是现代网页设计的重要组成部分。CSS3 提供两种主要的渐变类型&#xff1a;线性渐变(Linear Gradient) - 沿直线方向进行颜色过渡&#xff1b;径向渐变(Radial…

A Survey on 3D Gaussian Splatting——3D高斯领域综述

原文链接&#xff1a;[2401.03890] A Survey on 3D Gaussian Splatting 动态更新的GitHub仓库&#xff08;包含性能对比与最新文献追踪&#xff09;&#xff1a; https://github.com/guikunchen/3DGS-Benchmarks https://github.com/guikunchen/Awesome3DGS 摘要&#xff1…

计算机网络 期末实训 eNSP 校园网

eNSP 综合实训 小型校园网 计算机网络期末实训 01 搭建拓扑 1.设计任务 构建一个小型校园网络,涵盖以下设备与区域: 学生宿舍区:50台计算机办公楼区:30台计算机(细分为财务部门、人事部门及其他科室)图书馆:10台计算机教学楼:30台计算机服务器集群:2台服务器,分别用…

Smart Form Adobe form 强制更改内表:TNAPR

强制更改内表:TNAPR se16-> Smart Form总览 Smart form 变量格式说明: &symbol& (括号中,小写字母为变量) &symbol& 屏蔽从第一位开始的N位 &symbol (n)& 只显示前N位 &symbol (S)& 忽略正负号 &symbol (<)& 符号在…

页面配置文件pages.json和小程序配置

页面配置文件pages.json和小程序配置 pages.jsonpagesstyle-navigationBarBackgroundColorstyle-navigationBarTitleTextstyle-navigationStylestyle-enablePullDownRefresh注意事项不同平台区分配置新建页面 globalStyletabBar代码 manifest.json授权web配置代理 pages.json …

Linux网络配置工具ifconfig与ip命令的全面对比

在Linux网络管理中&#xff0c;ifconfig和 ip命令是最常用的两个工具。随着时间的推移&#xff0c;ip命令逐渐取代了 ifconfig&#xff0c;成为更强大和灵活的网络配置工具。本文将对这两个工具进行全面对比&#xff0c;帮助您理解它们的区别和各自的优势。 一、ifconfig命令 …

STM32 实现解析自定义协议

一、环形队列设计与实现&#xff08;核心缓冲机制&#xff09; 数据结构设计&#xff1a; #define BUFFER_SIZE 512 #define BUFFER_MASK (BUFFER_SIZE - 1) typedef struct {volatile uint8_t buffer[BUFFER_SIZE]; // 环形缓冲区&#xff08;大小可配置&#xff09;volati…

NGINX 四层上游模块`ngx_stream_upstream_module` 实战指南

一、模块定位与引入 模块名称&#xff1a;ngx_stream_upstream_module 首次引入&#xff1a;NGINX 1.9.0&#xff08;2015-08-04&#xff09; 编译选项&#xff1a;启用 --with-stream&#xff08;含此模块&#xff09; 作用&#xff1a; 定义后端服务器组&#xff08;upstr…

WinUI3入门2:DataGrid动态更新 添加删除和修改字段

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…