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

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

前言

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

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

语法

语法如下:

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

编程实践

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

<?php
/*
$originating  起点站
$terminus  终点站
*/
function saleTickets($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]);
}
//支付系统
function pay($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()函数代码如下:

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

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

调用如下:

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

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

总结

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

目录
相关文章
|
3月前
|
存储 安全 数据库
python Web开发基础
python Web开发基础
45 2
|
4月前
|
XML JSON 前端开发
Flask | Web开发基础提要
Flask | Web开发基础提要
|
5月前
|
Java 应用服务中间件
JavaWeb第五章课后题 Web开发基础
JavaWeb第五章课后题 Web开发基础
29 0
|
6月前
|
存储 PHP
【web 开发基础】PHP 变量的作用范围 (29)
变量的作用范围也就是他的生效范围。大部分的PHP变量只有一个单独的使用范围,也包含了include和require引入的文件。当一个变量执行赋值的动作后,会随着声明区域的位置差异而有不同的使用范围。大致上说,变量会依据声明的位置分为局部变量和全局变量两种。
33 1
|
6月前
|
PHP
【web 开发基础】PHP 的函数工作原理 (28)
仅当函数被调用后,函数中的语句才会被执行,目的是根据需求完成一些特定的任务。而函数执行完毕后,控制权将返回到调用函数的地方。也就是当代码运行到函数调用的时候,程序的执行就会进入被调用的函数中,执行被调用函数中的代码语句,函数就能够以返回值的方式将信息返回给程序。通过在程序中使用函数,可以进行结构化编程。在结构化编程中,各个任务是由独立的程序代码段完成的。而函数正是实现“独立程序代码段”最理想的方式,所以函数和结构化编程的关系非常的紧密。结构化编程不仅在PHP中很重要,在其他的编程语言中一样占有重要地位,结构化编程之所以卓越且重要
47 0
|
6月前
|
PHP
【web 开发基础】通过模拟地铁售票系统介绍PHP 自定义函数之函数的参数-PHP 快速入门 (26)
参数列表是由0个,一个或多个参数组成的。每个参数是一个表达式,用逗号分隔。对于有参函数,在PHP脚本程序中和被调用函数之间有数据传递关系。定义函数时,函数名后面括号内的表达式称为形式参数(简称“形参”),被调用函数名后面括号中的表达式称为实际参数(简称:实参),实参和形参需要按顺序对应传递数据。如果函数没有参数列表,则函数执行的任务就是固定的,用户在调用函数时不能改变函数内部的一些执行行为。例如:前面介绍的九九乘法表multiplicationTable()函数就是没有参数列表函数,每次调用multiplicationTable()函数时都会输出固定的格式,用户连最基本的输出行数都不能改变。
47 0
|
6月前
|
人工智能 机器人 PHP
【web 开发基础】PHP 自定义函数之函数的调用 -PHP 快速入门 (25)
从上一篇文章《【web 开发基础】PHP 自定义函数之函数声明 -PHP 快速入门 (24)》中我们了解到函数是由一些语句组织在一起的一种形式,定义函数是为了将程序按功能划分,方便程序的使用、管理以及维护等等。函数确实给我们的开发带来了很多便利,那函数写好之后,我们该如何调用呢?比如,我们现在定义了一个与机器人相关的函数,例如:对话,行走,搬运。。。等等。就像现在的一些人工智能音箱,我们呼唤他的时候,它能够回应我,给我反馈,我呼唤它,相当于我在调用对话这个函数,我呼唤的内容就是传入的参数,智能机器人的反馈就相当于函数中的返回值。我们接着继续看看在PHP中,函数具体该如何调用?
117 1
|
6月前
|
PHP
【web 开发基础】PHP 自定义函数之函数声明 -PHP 快速入门 (24)
函数就是由一定的功能的一些语句组织在一起的一种形式,定义函数的目的就是将程序按功能分块,方便程序的使用、管理、阅读和调试。函数有两种,一种是别人写好的或是系统内部提供的函数,即是内置函数,你只要知道这个函数是干什么的,自己会用就可以,不用管里面究竟是怎么实现的。另一种函数就是自定函数,顾名思义就是需要我们根据自己的需求自己实现的函数。函数的概念比较抽象,会有一些读者难以理解
61 0
|
6月前
|
Java 程序员 PHP
【web 开发基础】PHP 中的goto语句的使用 -PHP 快速入门 (23)
在所有的开发语言中不是都能使用goto语句,因为对goto的应用一直有争议。很多编程goto也只是作为保留关键字,比如java。支持goto的人认为goto语句使用起来比较灵活,而且有些情形能提高程序的效率。如果完全删去goto语句,有些情形反而会使程序变得过于复杂,增加一些不必要的计算量。持反对意见的人认为,goto语句是程序的静态结构和动态结构不一致,从而使程序难以理解、难以查错。去掉goto语句后,可直接从从程序上反映程序运行的过程,程序结构清晰、便于理解、方便查错。其实错误是程序员自己造成的,只是从实际的理解和处理上的不便造成,不是goto的过错。PHP从5.3以后的版本增加了goto
74 0
|
6月前
|
SQL 算法 IDE
【web 开发基础】PHP 中的特殊流程控制(exit) -PHP 快速入门 (22)
当前的脚本中只要执行到exit语句,无论它是在哪个结构中,都会直接退出当前脚本。exit()是一个函数,exit()是die()函数的别名,它可以带有一个参数输出一条消息作为提示,并退出当前脚本。比如:我们通常在连接数据库、选择数据库,以及执行SQL语句中如果有失败的环节,则可以使用3种方式输出错误消息,并退出脚本。
51 0
相关产品
云迁移中心
推荐文章
更多