PHP变量的赋值和引用以及传值与传引用的区别

后端-BACK END 同时被 2 个专栏收录
108 篇文章 0 订阅
83 篇文章 0 订阅

1.应用场景

知道何时使用赋值, 何时使用引用

2.学习/操作

1.js与php传值赋值和传递引用【地址】赋值

我们知道,js中,原始类型的赋值,是将值直接复制给变量;引用类型的赋值,是将内存地址复制给变量 //学习一个好方法:就是类比
这里总结哪些是直接赋值,哪些是复制的内存地址。

1、原始类型 -- 直接赋值
$name1 = 'sky';
$name2 = $name1;
$name2 = 'fly';
echo $name1.' '.$name2;     //sky fly

 

2、数组array -- 直接赋值
$arr1 = array(0, 1, 2, 3);
$arr2 = $arr1;
$arr2[0] = 6;
echo $arr1[0].' '.$arr2[0]; //0 6

 

3、class类 -- 内存地址
class Person{
    public $name = 'sky';
    public $age = 14;
}
$person1 = new Person();
$person2 = $person1;
$person2->name = 'moon';
echo $person1->name.' '.$person2->name;    //moon moon

然后,php中规定,使用“&”符号,可以将普通赋值改成内存地址,看下面代码

$name1 = 'sky';
$name2 = &$name1;  //&符号的使用
$name2 = 'fly';
echo $name1.' '.$name2;     //fly fly

 

2.按值传递: 函数范围内对值得任何改变在函数外部都会被忽略

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

 

优缺点:

按值传递时, PHP必须是复制值, 特别是对于大型的字符串和对象来说, 这将会是一个代价很大的操作. //即占用较多的内存空间

按引用传递则不需要复制值, 对于性能提高有好处.

 

后续补充

...

3.问题

TBD

4.参考

TBD

后续补充

...

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值