Blogger Information
Blog 20
fans 0
comment 0
visits 12340
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP编程0804作业 总结函数的返回值,参数&实例演绎匿名函数以及变量作用域
缘亦
Original
505 people have browsed it

    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 $变量是无法改成,需要通过引用传递 &$变量


Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post