前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP函数传值与传引用

PHP函数传值与传引用

作者头像
botkenni
发布2022-01-10 09:57:36
3.7K0
发布2022-01-10 09:57:36
举报
文章被收录于专栏:IT码农

1. 函数参数为对象时,传递的是对象地址,并非对象的拷贝

代码语言:javascript
复制
class Person{
    public function __construct($name){
        $this->name = $name;
    }
}
$aman = new Person('man');
function change( $p){
    $p->name = 'lucy';
}
change($aman);
echo $aman->name; //lucy

2. 函数参数为对象以外的普通类型时,包括数组array(),传递拷贝(浅拷贝

例1
代码语言:javascript
复制
$stu = array(
    'name' => 'lilei',
    'sex' => 'male'
);
function foo($arr){
    $arr['name'] = 'hanmeimei';
    return $arr;
}

foo($stu);
print_r($a); 

结果

代码语言:javascript
复制
lilei
例2 对象数组作为参数
代码语言:javascript
复制
$people = array(
    
    'a' => new Person("aaaaa"),
    'b' => new Person("bbbbb"),
    );
function changeOne($arr){
    $arr['a']->name = 'lucy2';
}
changeOne($people);
var_dump($people);

结果

代码语言:javascript
复制
array(2) {
  ["a"]=>
  object(Person)#2 (1) {
    ["name"]=>
    string(5) "lucy2"
  }
  ["b"]=>
  object(Person)#3 (1) {
    ["name"]=>
    string(5) "bbbbb"
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/11/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 函数参数为对象时,传递的是对象地址,并非对象的拷贝
  • 2. 函数参数为对象以外的普通类型时,包括数组array(),传递拷贝(浅拷贝)
    • 例1
      • 例2 对象数组作为参数
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档