博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php数组和对象的值传递和引用传递
阅读量:2429 次
发布时间:2019-05-10

本文共 970 字,大约阅读时间需要 3 分钟。

一般的数据类型(int, float, bool)不做这方面的解说了

这里详细介绍一下数组和的类的对象作为参数进行值传递的区别

数组值传递

实例代码:

<?php
 
function main() {
        
$cc = array(
            
'a'
,
'b'
        
);
        
change($cc);
        
var_dump($cc);
        
die;
}
function change($cc){
        
$cc = array(
'dd'
);
}
main();
?>
 
output:
array(2) {
  
[0]=>
  
string
(1)
"a"
  
[1]=>
  
string
(1)
"b"
}

数组引用传递

<?php
 
function main() {
        
$cc = array(
            
'a'
,
'b'
        
);
        
change($cc);
        
var_dump($cc);
        
die;
}
function change(&$cc){
        
$cc = array(
'dd'
);
}
main();
?>
outpout:
array(1) {
  
[0]=>
  
string
(2)
"dd"
}

 

类对象值传递 

<?php
class 
pp{
        
public 
$ss = 0;
}
function main() {
        
$p =
new 
pp();
        
change($p);
        
var_dump($p);
        
die;
}
function change($p){
        
$p->ss = 10;
}
main();
?>
output:
object
(pp)#1 (1) {
  
[
"ss"
]=>
  
int
(10)
}

类对象引用传递

<?php
class 
pp{
        
public 
$ss = 0;
}
function main() {
        
$p =
new 
pp();
        
change($p);
        
var_dump($p);
        
die;
}
function change(&$p){
        
$p->ss = 10;
}
main();
?>
object
(pp)#1 (1) {
  
[
"ss"
]=>
  
int
(10)
}

 总结:php中,数组是当一个普通变量,值传递是要一个实参的一个拷贝副本,跟实参无关,引用传递后可以改变实参的值
而类的对象是无论值传递和引用传递都是引用传递,是对对象的引用,都会改变实参的值

转载地址:http://husmb.baihongyu.com/

你可能感兴趣的文章
【Java】学习总结 —— HashMap之put()方法实现原理
查看>>
【计算机网络】【TCP】如何讲清楚Tcp的三次握手和四次挥手?
查看>>
【Java】-- Java核心知识点总结
查看>>
【数据库】SQL之重点知识点总结
查看>>
【计算机网络】计算机网络知识总结
查看>>
【Java】【Web】JavaWeb相关知识总结 2018-9-17
查看>>
【数据库】突破单一数据库的性能限制——数据库-分库分表总结 2018-9-20
查看>>
Slurm——作业调度处理
查看>>
Lustre 维护
查看>>
Lustre 操作
查看>>
Lustre—配置和管理磁盘配额
查看>>
Lustre—磁盘配额测试
查看>>
SSH加密密码中的非对称式密码学
查看>>
Mac Redis安装入门教程
查看>>
python3安装教程配置配置阿里云
查看>>
Mac快捷键和实用技巧
查看>>
Git的多人协作和分支处理测试
查看>>
mysql索引回表
查看>>
iterm2 保存阿里云登陆并防止断开连接
查看>>
brew安装
查看>>