php基础教程 第九步 自定义函数

自定义函数

在之前的课程我们有使用到php的系统函数,这些函数由系统定义。在开发中,有时候系统自带的函数满足不了我们开发时(或其它情况),我们可以自定义函数。顾名思义,自定义函数就是自己定义函数。
自定义函数的语法如下:

<?php
function 函数名称()
{该函数要执行的一些代码
}
?>

在以上自定义函数中,关键字为 function 随后接着函数名称,这个函数名称由自己定义。随后紧接着是一个圆括号,再接着是一个花括号。花括号中填写的是当前函数需要执行的一些代码。

最基础的自定义函数

查看了以上自定义函数的基本语法后,查看以下示例直观了解自定义函数:

<?php
function printInfo(){echo 'hello';
}
printInfo();
?>

根据自定义函数定义语法得知,以上代码中,使用function 关键字定义了一个函数,这个函数名为 printInfo,需要执行的代码是 echo 'hello';

定义完函数后,在下面使用函数的调用方法 函数名(); 调用了printInfo 函数 printInfo();

打开服务,访问php文件,结果如下:
在这里插入图片描述
成功执行了代码 echo 'hello';

带参数的函数

参数?什么是参数?可能有一些初学者会发出这个疑问。在了解参数概念前我们需要知道什么是函数。函数我们可以当做是一个功能,好比做饭,电饭锅的功能是做饭,但是需要什么原料才能做饭?当然是需要米的加入才能做饭,当然,也要有水。这个米和水就是参数。

回到正题,当我们编写一个函数,要完成两个变量的相加运算,那么我需要给两个变量给这个函数。那么这两个变量,则是参数。查看以下示例了解两个数相加的自定义函数:

<?php
function sum_($a,$b){echo 'a+b='.($a+$b);
}
sum_(1,2);
?>

以上代码中,定义了一个名字叫做 sum_的函数,可以给这个函数两个参数,第一个参数是a,第二个参数是b,两个参数之间使用逗号隔开(可以多个参数,不止可以传2个参数)。在函数的代码中,输出a+b的值。
新手读者可以查看 'a+b='.($a+$b)代码,可以发现 'a+b='($a+$b) 之间使用了小数点 . 进行链接,为什么不直接写成 'a+b='.$a+$b呢?如果使用 'a+b='.$a+$b 的话,计算机并不会直接计算两个变量a+b,而且会直接使用小数点链接变量a,这样就等于 a+b=’.$a 随后再加上 b 这个变量。但是由于前面的值是一个字符串,后面的值是一个数字,一般情况下,不同类型并不能做加减之类的运算,所以我们需要使用括号把变量 a+b 先计算后,得出一个数字,再进行连接。
随后调用sum_函数,并且在函数的括号中,第一个值写的是1,这个1对应的是函数中的变量a,第二个写的是2,这个2对应是函数中的变量b。在此我们发现,传参的值是可以按照位置进行对应的。
最终结果如下:
在这里插入图片描述

返回值函数

学习了以上的带参数函数,返回值函数学习起来也是非常快捷。返回值函数是函数会返回一个值。例如刚刚计算了a+b,我们需要把这个结果返回给一个变量进行接收,把a+b的结果赋值给一个变量,查看以下示例完成:

<?php
function sum_($a,$b){return $a+$b;
}
$a=sum_(1,2);
echo $a;
?>

以上代码中,sum_函数中使用了return关键字,return关键字的作用则是返回一个值。在这里写作 return $a+$b; 表示返回a+b的值。
在调用函数时,我们写为 $a=sum_(1,2);,在这里,我们把sum函数中return 的a+b值赋值给了变量a。随后输出变量a的值:
在这里插入图片描述
输出为3结果正确。
在以上示例中,我们发现调用函数后,返回的值给予了变量a,可是函数里面接受传参有一个参数也是a变量,这两个变量是否是同一个值?答案是“这两个变量并不是同一个值”。
怎么理解这两个变量呢?打个比方,你们学校有两个人叫小明,你们校长也叫做小明,你们班里面也有个小明,当在班里面说的小明自然是你们班级里的,在班级外面学校广播说话的小明肯定是校长。所以这个变量a,在函数里面则是表示函数里面的变量a。在函数外面则是表示的是函数外部的a变量。

为了方便理解,我以上函数示例中的代码都是一行,但是函数中的函数并不是只能写一行。大家可以自行尝试,查看效果。在此还要提醒的一点是,函数里面使用return,就表示函数在此跳出,结束函数的执行,需要注意函数的使用,在没有完成函数逻辑时,或者说没有完成你想要的逻辑时,别使用return,这样会使你的函数跳出,结束函数。

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

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

相关文章

如何使用 C# 隐藏 Console 窗口?

咨询区 Stefan Steiger我有一个 Console 程序&#xff0c;它主要用来重启 IIS 以及删除临时文件&#xff0c;我现在期望它启动后隐藏自身&#xff0c;我在网上找了下面这段代码做了隐藏。static void Main(string[] args) {var currentProcess System.Diagnostics.Process.Get…

编写登陆接口

用任意一种语言实现登陆接口 作者&#xff1a;尹正杰 版权声明&#xff1a; 本篇博客仅仅用于交流学习使用&#xff0c;对一些小功能的实现&#xff0c;来练习对代码的熟练度。同时&#xff0c;本篇博客允许转载&#xff0c;用于互相交流学习&#xff0c;转载必须在博客声明原链…

php基础教程 第十步 阶段性知识补充

简 在php教程中前九步已经了解了php的一些基础知识。大多数人在了解完以上知识后脑子还是迷茫的&#xff0c;最多懂的一些我所讲解过的知识如何实现&#xff08;对象为零基础读者&#xff09;&#xff0c;如何搭建一个网站还是不知晓。没关系&#xff0c;接下来我们即将进入ph…

ArcGIS实验教程——实验十三:栅格空间插值分析

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) >>> 实验前必读:《完美解决ArcGIS10.x栅格空间插值报错无法进行和导出插值栅格结果出错的问题》 一、实验描述 一般情况下采集到的数据都是以离散点的形式存在的,只有在这些采样点上才有…

ARM路线的投机性和欺骗性

过去十年里&#xff0c;在自主CPU取得了长足进步的同时&#xff0c;一批企业积极引进英特尔、AMD、VIA、IBM、ARM、高通等公司的技术&#xff0c;或是成立合资公司&#xff0c;相对于X86、Power等处理器很容易被识别为技术引进CPU&#xff0c;ARM的欺骗性则要强很多&#xff0c…

营业执照在线一键生成_如何在线制作证件照?证件照一键生成的方法

如何在线制作证件照&#xff1f;每一年的毕业季也是就业季&#xff0c;几百多万的大学生都面临着找工作&#xff0c;而在工作之前必须准备好证件照&#xff0c;这样方便参加面试和入职。随着市场需求的逐步扩大&#xff0c;很多便捷的软件和网站都被设计出来了&#xff0c;比如…

php基础教程 第十一步 面向对象

面相对象 面向对象程序设计简称OOP&#xff08;Object-oriented programming&#xff09;。是一种类型的抽象&#xff0c;或者说是一种类型以编码的方式进行描述。概念上理解并不能直观的说明问题&#xff0c;以下将会有示例为读者直观的感受面向对象。 类代表一个类别&#…

Android NDK开发Crash错误定位[转]

使用 ndk-stack 的时候需要你的 lib 编译为 debug版的&#xff0c;通常需要下面的修改&#xff1a; 1. 修改 android.mk&#xff0c;增加&#xff0c;为 LOCAL_CFLAGS 增加 -g 选项 2. 修改 application.mk&#xff0c;增加 APP_OPTIM : debug 3. nkd-build -B 4. 从 obj/local…

实验报告类与对象水井问题_物业设施设备巡检检查对象、周期和频次

点击上方“物业精英俱乐部”&#xff0c;关注公众号,中国物业管理行业精英联盟&#xff0c;中国百强物业企业精英学习平台。来源&#xff1a;百度文库版权归原创作者所有一巡检对象、周期和频次所谓巡检&#xff0c;并不是说将大大小小的所有物业设施都列入巡检范围&#xff0c…

龙芯2K1000LA处理器流片成功,龙芯业务全面转向LoongArch架构

2022年4月底&#xff0c;龙芯2K1000处理器完成了改版芯片&#xff08;代号龙芯2K1000LA&#xff09;的功能和性能测试&#xff0c;正在开展用户试用。龙芯2K1000LA在实现与原有版本2K1000引脚和接口兼容的基础上&#xff0c;处理器核更新为基于龙芯自主指令系统架构LoongArch&a…

php基础教程 第十一步 面向对象补充

继承 上一节中学习了php类&#xff0c;以及类方法、类成员变量相关的一些知识&#xff0c;接下来开始学习php类中的继承。本节是上一节的补充。&#xff08;其实也就是为了保持日更随便发的一篇文&#xff09; 开始 php继承是继承与父类的所有属性&#xff0c;就像你继承了你…

【Ubuntu】ubuntu物理机安装方法:wubi

在之前的文章里我们曾经详细介绍了如何在虚拟机里安装ubuntu操作系统&#xff0c;但是一些小伙伴希望在自己的电脑里安装一个ubuntu&#xff0c;来感受一下ubuntu的硬体验。下面给大家介绍一种通过wubi的安装方法。 wubi是 Windows Ubuntu-Based Installer 缩写&#xff0c;是一…

server如何调用 thrift_Thrift总结(二)如何快速创建自己的RPC服务

前面介绍了thrift 基础的东西&#xff0c;怎么写thrift 语法规范编写脚本&#xff0c;如何生成相关的语言的接口。不清楚的可以看这个《Thrift总结(一)介绍》。做好之前的准备工作以后&#xff0c;下面就开始如何用Thrift写RPC接口。如何用Thrift写RPC接口1. 打开之前下载的thr…

Hello Playwright:(2)简化部署方式

前言上次的文章Hello Playwright&#xff1a;(1)从开发到部署发表后&#xff0c;有网友留言问&#xff0c;有不有简化部署的方式&#xff1a;下面&#xff0c;提供 2 种可行的方案。方案 1. Copy其实 Playwright 默认是到C:\Users\用户名\AppData\Local\ms-playwright文件夹下查…

C++入门指南及实战 第一步 概述及经典HelloWorld

本系列文章环境及学习门槛 编程基础&#xff1a;无年龄&#xff1a;具有一定的逻辑思维英文&#xff1a;不要求数学&#xff1a;不要求学习时长&#xff1a;每天一篇&#xff0c;一周4-5篇即可&#xff0c;每篇最多1小时死记硬背&#xff1a;不需要&#xff0c;理解至上本机环…

为什么云服务器没西南的_去年“双11“我买的那台云服务器

一、为什么会买云服务器为什么初学者需要一台云服务器&#xff1f;从我自己那仅有的一点经验来看&#xff0c;重点无非这一个词&#xff1a;实践。细数一下初学者拥有一台云服务器的好处&#xff1a;学习操作系统、熟悉环境大部分初学者在本地使用的是windows系统&#xff0c;在…

Java线程安全以及线程安全的实现方式和内存模型(JMM)

一、了解几个概念 1&#xff09;临界区&#xff1a; 临界区指的是一个访问共用资源&#xff08;例如&#xff1a;共用设备或是共用存储器&#xff09;的程序片段&#xff0c;而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时&#xff0c;其他线程或是进…

animate 实现滑动切换效果

今天和大家分享一下用 animate 实现滑动切换效果的小例子 ------- 来自<一只有梦想的前端小白> 大家都知道jQuery 提供的有一下几种方法能够实现滑动效果&#xff1a; slideDown()slideUp()slideToggle()但是以上的滑动不太方便控制其滑动的方向&#xff0c;所以我们还是…

C++入门指南及实战 第二步 HelloWorld及扩展详解

回顾 在上一节中&#xff0c;我们编写了如下代码&#xff0c;完成了 HelloWorld程序的编写&#xff1a; #include<iostream> using namespace std;int main(){cout <<"Hello World";return 0; }本小节将会对该代码进行讲解&#xff0c;并且解释一下专业…

2560x1600分辨率高吗_做设计还弄不清分辨率和像素之间的关系,来了解下他们是怎么换算...

许多同学都在问我关于像素的问题&#xff0c;为什么印刷时要300分辨率以上&#xff1f;网页为什么72就够了&#xff1f;做户外喷绘30&#xff0c;甚至巨幅画面20就上了。关于这些还是很多人不知道的&#xff0c;要不也不会被卖手机的忽悠&#xff0c;各大手机推销员拿着手机大声…