参数传值方式|学习笔记

简介: 快速学习参数传值方式

开发者学堂课程【PHP 基础入门课程(下)参数传值方式】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/710/detail/12628


参数传值方式

1、目标:

了解参数传值方式的区别和应用

2、概念

参数传值方式:在函数调用时,实参给形参传值时所采用的传值方式

(1)参数传值方式在函数定义时规定  实际传值的落点

(2)参数传值方式有两种:

值传递:默认,即外部数据,如 function a($b)值是否改变无关系。

引用传递:使用&符号,即传递外部变量存储数据的内存地址,如 function a(&$b)

3、步骤

(1)确定函数参数的目的

外部传入数据内部运算,不影响外部:值传递  此较多使用。

外部传入数据内部运算,同时外部也受影响:引用传递

(2)传递实参时要确定形参的传值方式

值传递:数据常量、变量、常量、运算表达式都可以(能有数据都可以)

引用传递:变量

4、示例

#值传递:输出一个指定数到1之间的整数

function display1($n){

while($n > 1){

echo_$n--; #当前$n 最终会等于0(正常正数传入)

}

}

$a = 3;

display1($a);#输出3,2,1

display1(2);#输出2,1

echo $a;#3,没有变化

此种方式为值传递,前面可以传数据,变量,任何带数据的东西。

代码

<?php

#参数传值方式

#值传递

function display1($n){

while($n > 1){

echo $n--,'<br/>';

}

}

运行代码,没有问题。

调用直接传值第一种方法,传数据就可以

display(4); 

运行结果:

image.png

第二种定义变量,传变量进去,常量也可以传,只要带数据就可以。

$n=5;

display($n);

运行结果:

image.png

方案2

echo '<hr/>';

#引用传递

function display2(&$n){

while($n > 1){

echo $n--,'<br/>';

}

}

display2(3);#错误:数值常量不能用于引用传值

运行,出现错误。

image.png

语法编译出现错误,数值常量,不能用于引用。

$n=9

display2($n);

刷新运行正常,此时这是本身在传值时的区别。

当前面用了变量传值之后,

在display(4);

$n=5;

display($n);

位置添加 echo $n;运行,发现n原来是5输出还是5。

而接着输出 echo $n;时运行结果为1,n 最终为1,内部的改变也影响到外部,所以这是引用传值和普通的传递的区别。第一能传的数据有区别,第二传进去之后内部的改变跟外部也会有影响。

5、小结

(1)参数传值方式是指实参传入到形参后,内部的改变是否对外部有影响

值传递:传递数值,内部修改不影响外部(所以外部只要是能得到数据的方式都可以做实参)

引用传递:传递数据的内存地址,内部修改影响外部(所以只能传递变量)

相关文章
|
XML Java 数据库连接
Mabtis传值方式
Mabtis传值方式
382 0
|
JSON 前端开发 数据格式
四种常见的参数传递方式
四种参数传递方式
195 0
|
1月前
|
JSON 前端开发 数据格式
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
文章详细讲解了在SpringMVC中如何使用`@RequestMapping`进行路由映射,并介绍了前后端参数传递的多种方式,包括传递单个参数、多个参数、对象、数组、集合以及JSON数据,并且涵盖了参数重命名和从URL中获取参数的方法。
52 0
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
|
2月前
|
存储 前端开发 JavaScript
前端基础(十一)_函数声明及调用、函数的形参与实参、arguments参数、函数的参数类型、函数中的问题
本文介绍了JavaScript中函数的声明及调用、形参与实参的概念、arguments对象的使用、函数参数的类型以及函数中this的作用。通过示例代码详细解释了函数如何接收参数、如何处理参数个数不匹配的情况,以及函数在不同上下文中this的指向。
22 1
数据交互,前后端数据请求,axios请求,对象结构的使用,E6的使用,结构赋值是什么?函数形参的obj如何,函数形参的obj就改成对象结构接收传入的数据对象
数据交互,前后端数据请求,axios请求,对象结构的使用,E6的使用,结构赋值是什么?函数形参的obj如何,函数形参的obj就改成对象结构接收传入的数据对象
|
Java
方法的传参过程
方法的传参过程
124 0
|
JavaScript 网络架构
vue传参和接受参数方法
vue传参和接受参数方法
|
JavaScript
页面传参封装
在含有图文详情的项目中,页面传参是我们必须要使用的,因为我们在第二个页面中获取图文数据是需要数据的,这个数据来源于第一个页面,而我们无法直接从一个页面拿到另一个页面的数据,这个时候就需要用到页面传参来解决这个问题。
87 1
页面传参封装
【学习笔记之我要C】函数的参数与调用
【学习笔记之我要C】函数的参数与调用
148 0