PHP之值传递与引用传递

废话不多说,直接上代码(值传递与引用传递的区别我在这就不介绍了,不懂得的小伙伴直接代码理解,还是不懂 -> 自行度娘):

普通变量: 值传递

<?php
$a = 6;
echo $a; // 6

set_value_common($a); // 10
echo $a; // 6

set_value_reference($a); // 10
echo $a; // 10

// 值传递
function set_value_common($var) {
    $var = 10;
    echo $var;
}

// 引用传递
function set_value_reference(&$var) {
    $var = 10;
    echo $var;
}
?>

数组:
之前误以为PHP跟C一样数组是引用传递,结果做项目时输出结果不一致,才知道 PHP 的数组跟普通变量一样是值传递

<?php
$arr = [1, 2, 3, 4, 5];
var_dump($arr); // array(5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) }
echo "<br>";

set_arr_common($arr);
var_dump($arr); //array(5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) }
echo "<br>";

set_arr_reference($arr);
var_dump($arr); // array(3) { [0]=> int(3) [1]=> int(3) [2]=> int(3) }
echo "<br>";

// 值传递
function set_arr_common($arr) {
    $arr = array(3, 3, 3);
}

// 引用传递
function set_arr_reference(&$arr) {
    $arr = array(3, 3, 3);
}
?>

对象: 引用传递

<?php
class car {
    public $name = "BMW";
}

$obj = new car();
var_dump($obj); //object(car)#1 (1) { ["name"]=> string(3) "BMW" } 
echo "<br>";

set_arr_common($obj);
var_dump($obj); //object(car)#1 (1) { ["name"]=> string(4) "BenZ" } 
echo "<br>";

function set_arr_common($obj) {
    $obj -> name = "BenZ";
}
?>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值