【web 开发基础】PHP 自定义函数之函数的返回值-PHP 快速入门 (27)

简介: 在定义函数时,函数名后面括号中的参数列表是用户在调用函数时用来将数据传递到函数内部的接口,而函数的返回值则将函数执行后的结果返回给调用者。如果函数没有返回值,就只能算一个执行过程。只依靠函数做一些事情还不够,有时更需要在程序脚本中使用函数执行后的结果。由于变量的作用域的差异,调用函数的脚本程序不能直接使用函数体里面的信息,但可以通过关键字return向调用者传递数据。return语句在函数体中使用时,有以下两个作用:1. return语句可以向函数调用者返回在函数体中任意确定的值。2. 将程序控制权返回到调用者的作用域,即退出函数。在函数体中如果执行了return语句,它后面的语句就不会被

前言

在定义函数时,函数名后面括号中的参数列表是用户在调用函数时用来将数据传递到函数内部的接口,而函数的返回值则将函数执行后的结果返回给调用者。如果函数没有返回值,就只能算一个执行过程。只依靠函数做一些事情还不够,有时更需要在程序脚本中使用函数执行后的结果。由于变量的作用域的差异,调用函数的脚本程序不能直接使用函数体里面的信息,但可以通过关键字return向调用者传递数据。return语句在函数体中使用时,有以下两个作用:

  1. return语句可以向函数调用者返回在函数体中任意确定的值。
  2. 将程序控制权返回到调用者的作用域,即退出函数。在函数体中如果执行了return语句,它后面的语句就不会被执行

语法

语法如下:

<?phpreturn返回值;//一个确定的值?>

编程实践

在上一篇文章《【web 开发基础】通过模拟地铁售票系统介绍 PHP 自定义函数之函数的参数 -PHP 快速入门 (26)》中我们写了一个模拟地铁售票系统的程序,代码如下:

<?php/*$originating  起点站$terminus  终点站*/functionsaleTickets($line,$originating, $terminus){
//通过选择站点计算票价 地铁是按里程计算的.我们这里只是模拟一下$station= [
3=>[
'天河客运站-五山'=>2,
'天河客运站-广州东站'=>3,
'天河客运站-林和西'=>4,
'天河客运站-体育西路'=>5    ],
4=>[
'黄村-车陂'=>2,
'黄村-车陂南'=>3,
'黄村-万胜围'=>4,
'黄村-官洲'=>5    ]
  ];
echo"你选择的是" . $line . "号线,起始站点-终点站是: " .  $originating . "-" . $terminus;
echo"<br>";//<br>是网页中的换行echo"你的票价是: " . $station[$line][$originating . "-" . $terminus];//数组的用法后面细说//调用支付系统进行支付$yourPay=3;
pay($yourPay, $station[$line][$originating . "-" . $terminus]);
}
//支付系统functionpay($yourPay, $ticketPrice){
if($yourPay>$ticketPrice){
echo"支付成功,正在找零....找回金额为:". ($yourPay-$ticketPrice);
  }
elseif($yourPay<$ticketPrice){
echo"请继续支付....已放入金额为:". ($ticketPrice-$yourPay);
  }else{
echo"支付成功,正在出票...";
  }
}
saleTickets(3,'天河客运站', '体育西路');

在上面的例子中,我们在售票函数saleTickets($line,$originating, $terminus)中调用了支付函数pay(),在支付函数中们是直接输出支付的结果,而不是返回结果。如果我们需要在售票函数saleTickets($line,$originating, $terminus)中需要pay()返回一个值,并在售票函数中使用到,比如返回支付成功的编码code以及提示信息等等,然后通过返回的信息判断支付的具体情况,这时候我们就需要使用到return返回一个值,以供调用函数来使用。修改pay()函数代码如下:

<?phpfunctionpay($yourPay, $ticketPrice){
if($yourPay>$ticketPrice){
returnarray(
'code'=>'0',
'msg'=>"支付成功,正在找零....找回金额为:". ($yourPay-$ticketPrice);
    )
  }
elseif($yourPay<$ticketPrice){
returnarray(
'code'=>'1',
'msg'=>"请继续支付....已放入金额为:". ($ticketPrice-$yourPay)
    )
  }else{
returnarray(
'code'=>'2',
'msg'=>"支付成功,正在出票..."    )
  }
}
?>

在上述代码中,由于PHP中return一次智能返回一个值,当我们需要返回多个值时,我们可以把所以值放到一个数组中进行返回。这样我们就可以从在其他函数中判断调用的其他服务是否成功,再进行接下来的操作,这样更符合我们的实际需求。

调用如下:

<?phpfunctionsaleTickets($line,$originating, $terminus){
//.....$returnData=pay($yourPay, $station[$line][$originating . "-" . $terminus]);
}
?>

在上面的例子中,当saleTickets()调用pay()时,不仅可以将一些数据以参数的形式传递到函数的内部,还执行了函数,并且在调用函数处还可以使用return语句返回的值,而且这个从函数返回的值可以在脚本中像使用其他值一样使用,比如:将返回值赋值给一个变量、直接输出或是参与运算等。

总结

通常在函数中使用return语句可以很容易的返回一个值。如果需要返回多个值,则不能采用连续写多个return语句的方式。因为函数执行到第一个return语句就会退出,不会执行其后面的任何代码,但是可以将多个值添加一个数组中,在使用return返回这个数组,在调用函数时就可以接收到这个数组,并在程序中像使用其他数组一样。

目录
相关文章
|
5天前
|
安全 编译器 PHP
PHP 8.1版本发布:引领Web开发新潮流
PHP编程语言一直是Web开发的主力军,而最新发布的PHP 8.1版本则为开发者们带来了更多创新和便利。本文将介绍PHP 8.1版本的主要特性,包括更快的性能、新的语言功能和增强的安全性,以及如何利用这些功能来提升Web应用程序的质量和效率。
|
8天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
2月前
|
PHP
从建站到拿站 -- PHP判断循环及函数
从建站到拿站 -- PHP判断循环及函数
12 0
|
2月前
|
PHP
从PHP开始学渗透 -- 函数
从PHP开始学渗透 -- 函数
8 0
|
2月前
|
JSON JavaScript Java
【PHP】英文博客专栏PHP快速入门个人笔记
【PHP】英文博客专栏PHP快速入门个人笔记
119 1
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
|
3月前
|
PHP 数据安全/隐私保护
|
4月前
|
关系型数据库 MySQL 数据库
Web 框架 Flask 快速入门(三)数据库-MySQL
数据库 1、数据库的安装与配置 这节用到flask的两个扩展,使用pip安装扩展就行
63 0
|
4月前
|
前端开发 Python
Web 框架 Flask 快速入门(二)表单
🌴 表单 1、表单介绍 当我们在网页上填写账号密码进行登录的时候,就是在填写一个“表单”。web表单是web应用程序种最基本的功能。 2、表单的简单实现 下面的代码实现了这样的功能:
38 0
|
4月前
|
开发框架 Python
Web 框架 Flask 快速入门(一)flask基础与模板
🌴 Flask基础和模板 1、web框架的作用 避免重复造轮子,app程序不必关心于服务器的沟通方式,而专注于核心的业务逻辑实现。 稳定,可扩展性强
43 0