php的值传递和引用传递

    xiaoxiao2021-12-10  15

    1.引用传递

    (1)字符串(数组同理)

    先通过下面一个实例来学习一下。

    <?php function changName(&$name){ $name = "梦云智"; } $test = 'mengyunzhi'; echo $test; changName($test); echo $test; ?> 执行结果为:。

    上面的代码中,changeName(&$name)执行时,首先会申请一个临时变量$name,但是并没有把$test的值赋值给$name,而是把$test的地址赋值给$name,这相当与给$test取了一个别名,接下来chengeName函数访问$name,实际上是间接访问$test,对$name的任何修改都会影响到$test,函数执行完,$name的内存被释放,$girl的内存依然存在。

    (2)函数

    依然通过实例来解析一下:

    <<?php function &getName(){ $name = 'mengyunzhi'; return $name; } $test = &getName(); var_dump($test); ?> 执行结果为:“mengyunzhi”。同上,把getName函数返回值的地址赋值给$test变量,对$name的任何修改都会影响到$test。

    2.值传递

    代码如下:

    <?php function getName($name){ $name = 'mengyunzhi'; return $name; } $test = '梦云智'; getName($test); var_dump($test); ?> 执行结果:“梦云智”。

    当执行getName($name)函数时,会生成一个临时变量$name,并把$test的值赋给$name,$name和$test是两个不同的变量,执行getName函数之后,$name变量被销毁,内存被释放。

    转载请注明原文地址: https://ju.6miu.com/read-700208.html

    最新回复(0)