搜索
首页每日编程PHP知识PHP两种传值方式,值传递与引用传递

PHP中值传递和引用传递的区别

变量传值是指:将一个变量的值“传递”给另一个变量。

有且只有两种传数据的方式:值传递引用传递。php默认的一般情况下,都使用的是值传递。

下面让我们一起来看看这两种传递方式到底有哪些不同:

值传递:

就是将右边变量的“数据值”本身,复制一份,然后赋值给左边变量

值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。

举例:

$v1 = 1;
$v2 = $v1;

值传递后,两个变量是互不影响的,相互独立

<?php
//值传递
$v1 = 10;
$v2 = $v1;
echo "v2的值为:".$v2;//10
$v1 = 11;
echo "<br>v2的值为:".$v2;//10

1.jpg

引用传递:

是将右边变量对数据的引用关系,传给左边的变量

引用传递(pass-by-reference)过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的。

<?php
//引用传递
$v1 = 10;
$v2 = &$v1;
echo "v2的值为:".$v2;//10
$v1 = 11;
echo "<br>v2的值为:".$v2;//11

0.jpg

总结:

这里主要考察的就是类似于传值,传引用的问题。了解到传值是重新开辟内存空间,相当于把原值复制一份,和原值是彼此独立的。传引用(指针)只是给原内存块加了个指向,引用的值变了,就修改了指向的内存地址值,所有指向的引用全部变了。

以上是PHP两种传值方式,值传递与引用传递的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。