首页 > 后端开发 > 正文

php传值函数吗 PHP中按值传递和引用传递的区别

2025-03-14 14:36:32 | 我爱编程网

php传值函数吗 PHP中按值传递和引用传递的区别相关内容,小编在这里做了整理,希望能对大家有所帮助,关于php传值函数吗 PHP中按值传递和引用传递的区别信息,一起来了解一下吧!

本文目录一览:

php传值函数吗 PHP中按值传递和引用传递的区别

PHP 里url传值

如果form 表单提交的时候用了post就要用post来接收,比如说
<form method="post">
用户名:<input type="text" name="name" value="">
密码:<input type="password" name="pwd" value="">
<input type="submit" value="提交">
</form>

接收时就用:
$username=$_POST["name"];
$password=$_POST["pwd"];

如果method="get"的话就用get接收

php传值函数吗 PHP中按值传递和引用传递的区别

PHP传值,引用和传址的区别

实参(被调)、行参(主调)
函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
--传值:
是把实参的值赋值给行参,相当于复制一块同样的空间那么对行参的修改,不会影响实参的值
--传地址:
是传值的一种特殊方式,只是他传递的是地址,不是普通的如int那么传地址以后,实参和行参都指向同一个对象--传引用:
真正的以地址的方式传递参数
传递以后,行参和实参都是同一个对象,只是他们名字不同而已对行参的修改将影响实参的值
即传址时只需在函数调用时在参数的前面加上"&"号即可。将函数外部的值的内存地址传递给内部的参数,在函数内部的所有操作都会改变函数外部参数的值。
值传递(passl-by-value): 压栈的是参数的副本。任何的修改是在副本上作用,没有作用在原来的变量上。
过程中:被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
传指针(pointer): 压栈的是指针变量的副本。当你对指针解指针操作时,其值是指向原来的那个变量,所以对原来变量操作。
引用传递(pass-by-reference):压栈的是引用的副本。由于引用是指向某个变量的,对引用的操作其实就是对他指向的变量的操作。
过程中:被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
所谓值传递,就是说仅将对象的值传递给目标对象,就相当于copy;系统将为目标对象重新开辟一个完全相同的内存空间。
所谓引用,就是说将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间。如果对目标对象进行修改,内存中的数据也会改变。

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

我爱编程网(https://www.52biancheng.com)小编还为大家带来PHP中按值传递和引用传递的区别的相关内容。

(1)按值传递:函数范围内对值的任何改变在函数外部都会被忽略

(2)按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

(3)优缺点:

A:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。

B.按引用传递则不需要复制值,对于性能提高很有好处。 我爱编程网

<?php
    header('content-type:text/html;charset=utf-8');
    //探讨一下 array , null, 对象 ,资源的默认传递方式
    // 结论 (1) array 默认是值传递,通过加 & 可以引用传递
    //      (2)  null 默认是值传递,通过加 & 可以引用传递
    //      (3) 资源  是值传递.通过加 & 可以引用传递
    //        (4) 对象默认也是值传递,但是对象值传递是对象标识符    
    $hero = array('no1'=>'蝙蝠侠', 'no2'=>'超人');
    $hero2 = &$hero;
    $hero2['no1'] = '蜘蛛侠';
    echo '<pre>';
    var_dump($hero);
    
    var_dump($hero2);
    $a = null;
    $b = &$a;
    $b = 'abc';
    var_dump($a, $b);
   ?>

以上就是php传值函数吗 PHP中按值传递和引用传递的区别全部内容了,了解更多相关信息,关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
标签: PHP
与“php传值函数吗 PHP中按值传递和引用传递的区别”相关推荐
按引用传递参数用php来表示圆柱的表面积? PHP传值,引用和传址的区别
按引用传递参数用php来表示圆柱的表面积? PHP传值,引用和传址的区别

按引用传递参数用php来表示圆柱的表面积?下面是一个使用按引用传递参数的PHP函数,用于计算圆柱的表面积:functioncylinder_surface_area($radius,$height,&amp;$surface_area){$surface_area=2*pi()*$radius*$height+2*pi()*pow($radius,2);}//示例用法$

2024-07-28 02:23:29
PHP 里url传值(PHP传值,引用和传址的区别)
PHP 里url传值(PHP传值,引用和传址的区别)

PHP里url传值如果form表单提交的时候用了post就要用post来接收,比如说&lt;formmethod="post"&gt;用户名:&lt;inputtype="text"name="name"value=""&gt;密码:&lt;inputtype="password"name="pwd"value=""&gt;&lt;inputtype="submit"valu

2025-03-05 15:17:12
php怎么用get传递带&的链接url 注意传递的值是一个链接
php怎么用get传递带&的链接url 注意传递的值是一个链接

php怎么用get传递带&的链接url注意传递的值是一个链接我没有尝试过这样写,不过我觉得这样写是不妥当的。URL中如果有"?"怎么办的应该把?替换成*例如gotb1.php里面header("location:gotb2.php?tb=*id=100");然后在gotb2.php$url=$_GET["tb"];$url=str_replace('*','?',$u

2024-10-28 23:32:55
php函数中传引用参数可以设置默认值吗
php函数中传引用参数可以设置默认值吗

php函数中传引用参数可以设置默认值吗php函数中传引用参数可以设置默认值吗是这个样子的,定义的参数与调用时的参数名称可以不同。带默认值的就是指当这些参数没有给出的时候可以按照预定义内容进行赋值。functiontext($i,$a="test1",$test="test2"){echo"{$i}";echo"{

2024-07-18 08:46:41
php引用传递中的&什么意思,有什么用?
php引用传递中的&什么意思,有什么用?

php引用传递中的&什么意思,有什么用?其实图片中的文字已经描述得很详细了,如果你是循序渐进学到这里的,应该是可以理解的啊。加了&amp;就是引用传递,就是把实参的内存地址传递给函数内部的形参,这样的话函数内部对形参的任何修改都会直接影响到外部的实参,也就是说这种情况下实参和形参其实是同一个变量;而不加&amp;则是值传递,就是把实参的值传递给函数内部的形参,这时候函数内部对形参的任

2024-10-12 16:21:53
PHP构造函数传递值的问题 php 使用curl函数并附带参数传递,接收返回的数据并保存在变量中
PHP构造函数传递值的问题 php 使用curl函数并附带参数传递,接收返回的数据并保存在变量中

用PHP定义一个函数,返回3个参数中的最大值?可以使用以下代码定义一个函数,返回3个参数中的最大值:functionfindMax($num1,$num2,$num3){$max=$num1;if($num2&gt;$max){$max=$num2;}if($num3&gt;$max){$max=$num3;}return$max;}该函数接受3个

2024-08-10 03:58:48
PHP构造函数传递值的问题(php 使用curl函数并附带参数传递,接收返回的数据并保存在变量中)
PHP构造函数传递值的问题(php 使用curl函数并附带参数传递,接收返回的数据并保存在变量中)

PHP构造函数传递值的问题__construct($hostname)里面的参数是构造函数的参数,只能在构造函数内部调用,public$hostname;这是类的参数,整个类内部包括继承类都可以调用第二种的参数只能在构造函数中使用,而第一种,则将传来的参数赋值给类的变量,所以第一种的hostname整个类内部的方法都可以使用$this-&gt;hostname来调用php使用c

2024-10-11 07:45:57
php函数传值 php 使用curl函数并附带参数传递,接收返回的数据并保存在变量中
php函数传值 php 使用curl函数并附带参数传递,接收返回的数据并保存在变量中

php语言中传值赋值和引用赋值的区别笔记//传值赋值和引用赋值区别/*传值赋值:a.变量表:放变量名指向它们各自的位置(盒子)b.位置(盒子):存放值和类型*/$a1=234;$a2=34556;$a1=$a2;var_dump($a1,$a2);$a2='nongjiale.fun';var_dump($a1,$a2);/*引用赋值:使用&amp;

2024-07-25 21:41:14