博客列表 >PHP编程0804作业 总结函数的返回值,参数&实例演绎匿名函数以及变量作用域

PHP编程0804作业 总结函数的返回值,参数&实例演绎匿名函数以及变量作用域

缘亦
缘亦原创
2021年08月05日 01:02:10503浏览

    1.总结函数的返回值,参数? 

  • 1)函数返回值就是你所调用的函数返回给你的值。一般采用return来返回,return只能返回单个值,后面的代码不会被执行,可以返回整形,字符串,浮点,布尔,计算等等,如果返回多个值可以返回数组、对象,返回长度最长40位,

  • 2)参数为函数的调用者提供一个接口去改变函数体的执行行为

  • 函数里面的参数叫形参,调用的时候叫实参,形参有几个,调用的时候实参就需要有几个
  • 形参是可以有默认置的,参数列表是从左往右传值的,如果不传参数或少传参数都会使用默认值


  1. 2.实例演绎你对课上匿名函数以及变量作用域问题的理解?

1)匿名函数就是闭包,受作用域限制,闭包允许临时创建一个没有名称的函数 

匿名函数实例

<?php
$city = function ( $a, $b ) {
    return "{$a}来自{$b}" ;
};
echo $city( '缘亦', '安徽' );
?>
运行实例 »

点击 "运行实例" 按钮查看在线实例

2)变量的作用域也叫函数的作用域,全局变量函数体外声明的变量,在函数体内是无法访问,解决办法用global $GLOBALS

局部变量是在函数体内声明的变量,也可以叫内部变量,只能在函数体内使用,外部无法调用

闭包作用域无法调用函数体外的变量,可以用use关键字来解决,闭包作为函数的返回值

变量作用域实例

<?php
$city = '安徽';
$name = '缘亦';
// 外部定义变量,这两个变量在函数体内无法访问,匿名函数通过use可以访问函数体外的变量
$form = function() use ( $name, $city ) {
    return sprintf( '%s是来自%s的', $name, $city );
};
echo $form();
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例


随堂笔记


函数是全局成员,完成特定功能的代码块(命名函数是全局成员)


命名空间解决全局命名的问题

有名称的要命名函数,没有名称的叫匿名函数

1、系统函数,不用定义,只需要调用即可

2、自定义函数

strtoupper();全转为大写

strlen();控制字符串的长度,一般在调用标题简介或限制名称、密码的长度

return只能返回单个值,后面的代码不会被执行,可以返回对象,布尔,整形,字符串,浮点,数组,计算等,返回长度最长40位,如果返回多个值可以返回数组、对象


function 函数名称([参数列表 -形参]){

函数体

return(瑞滕嗯) 返回值

}

例:计算两个数的商

function divide($one,$two){

return $one/$two;

}

echo divide(99,9);


数组只能用print_r和var_dump

public(怕不类可)公有的访问

对象的访问采用$obj->name

多个值以json字条串的方式返回

json_encode()系统预定义函数 ,将数组转为json字符串,json字符串是一种数据交换形式

json_decode()将json字符串转为数组,第2个参数设为true,拿到数组json_decode($res,true);


参数可以用,隔开

.=相当于字符串的连接符

函数里面的参数叫形参,调用的时候叫实参,形参有几个,调用 的时候实参就需要有几个

形参是可以有默认置的

1、参数为函数的调用者提供一个接口去改变函数体的执行行为

2、函数的执行的任务是固定的


参数列表是从左往右传值的

如果不传参数或少传参数都会使用默认值


剩余函数适应于参数的个数不确定用...三个点后面跟上参数

剩余参数通常用于数据库的连接

当剩余参数用在参数列表 表示收集的作用

function_exists();检测一个函数是否存在,解决重命名的问题

array_sum()计算数组各个成员的和

剩余参数用在函数的调用 表达式中,表演展开的作用


数据库连接

function connect(...$arg){

return new PDO($arg[0],$arg[2],$arg[3])

}

$pdo = connect('mysql:dbname=news','root','root')

if($pdo) echo "数据库连接成功";


匿名函数就是闭包,受作用域限制,闭包作用域问题 闭包closure(渴楼色儿) 允许临时创建一个没有名称的函数

匿名函数可以用变量参定义,变量后面用();

$定义变量名 = function($变量);


命名函数是全局成员,有名称的函数,不受作用域限制

变量的作用域也叫函数的作用域

全局变量 函数体外声明的变量,在函数体内是无法访问

解决办法用global $GLOBALS  (哥捞保)


局部变量是在函数体内声明的变量,也可以叫内部变量,只能在函数体内使用,外部无法调用


闭包作用域无法调用函数体外的变量,可以用use关键字来解决

闭包作为函数的返回值

外面是单引号里面就用双引号,反之也是一样


函数的返回值是一个闭包,则无法直接输出,需要再次赋值,可采用转为变量后再输出 $闭包(变量);另外一个方法是输出 变量('闭包')('变量');

闭包可以改变就量上下文的值,直接通过echo $变量是无法改成,需要通过引用传递 &$变量


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议