[转载]php 数组 类对象 值传递 引用传递 区别
一般的数据类型(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://www.cnblogs.com/zcy_soft/archive/2011/12/10/2283570.html
[转载]php 数组 类对象 值传递 引用传递 区别的更多相关文章
- php 数组 类对象 值传递 引用传递 区别
一般的数据类型(int, float, bool)不做这方面的解说了 这里详细介绍一下数组和的类的对象作为参数进行值传递的区别 数组值传递 实例代码: <?php function main() ...
- C++之值传递&指针传递&引用传递详解
C++之值传递&指针传递&引用传递详解 目录 C++之值传递&指针传递&引用传递详解 1.函数基础 2.值传递 3.指针传递 4.引用传递 1.函数基础 一个函数由以下 ...
- 对象之间的引用传递 之 .NET中的深拷贝和浅拷贝
1.场景 首先,场景是这样的. 有一个Person类,类中有一个类型是Car的属性.用于表述,人开的车. Car类中有一些描述诸如汽车拼盘之类的属性.基本场景就是这样. 2.浅拷贝 Person ...
- 对象引用 方法传参 值传递 引用传递 易错点 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- java对象Integer不能引用传递
java对象Integer不能引用传递 /** * The value of the <code>Integer</code>. * * @serial */ private ...
- 理解--->Java中的值传递&引用传递
转自:http://url.cn/5tL9F5D 值传递和引用传递 值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际 ...
- C# 开发 —— 数组类对象接口
数组类型是从抽象基类 Array 派生的引用类型,通过new运算符创建数组并将数组元素初始化为他们的默认值 一维数组 type[] arrayname; 数组的长度不是声明的一部分,而且数组必须在访问 ...
- 值传递 & 引用传递
以下程序的输出结果是? public class Example { String str = new String("good"); char[] ch = { 'a', 'b' ...
- java基础之 数据类型 & 值传递 引用传递 & String & 四种引用类型
一.Java数据类型 分为基本数据类型与引用数据类型 基本数据类型: byte:Java中最小的数据类型,在内存中占1个字节(8 bit),取值范围-128~127,默认值0 short:短整型,2个 ...
随机推荐
- idea 无法创建Scala class 选项解决办法汇总
原因一:没有添加scala sdk 解决:file=>project structure =>Global Libraries,添加scala-sdk: 没有scala sdk的可以去网上 ...
- AbstractFactory(抽象工厂模式)
AbstractFactory(抽象工厂模式) 有些情况下我们需要根据不同的选择逻辑提供不同的构造工厂,而对于多个工厂而言需要一个统一的抽象 <?php class Config { publi ...
- Java算法HmacSHA256不可用 - Java Algorithm HmacSHA256 not available
发布的jar包,运行后发现报错 Java Algorithm HmacSHA256 not available 百般思索,发现原生JAR包问题 解决办法: Copy sunjce_provider.j ...
- POJ 2396 Budget ——有上下界的网络流
给定矩阵的每行每列的和,和一些大于小于等于的限制.然后需要求出一组可行解. 上下界网络流. 大概的思想就是计算出每一个点他需要强行流入或者流出的量,然后建出超级源点和汇点,然后删除下界,就可以判断是否 ...
- HDU 4609 3-idiots ——FFT
[题目分析] 一堆小木棍,问取出三根能组成三角形的概率是多少. Kuangbin的博客中讲的很详细. 构造一个多项式 ai=i的个数. 然后卷积之后去重. 统计也需要去重. 挺麻烦的一道题. #inc ...
- P1736 创意吃鱼法 (动态规划)
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- Scott Mitchell的ASP.NET2.0数据指南中文版索引
原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 原文http://www.cnblogs.com/ilovejolly/archive/2006/10/05/52 ...
- 初学Android,BroadcastReceiver之发送接收广播
BroadcastReceiver用于监听系统全局广播消息,由于BroadcastReceiver是一种全局的监听器,因此它可以非常方便地实现系统中不同组件之间通信 启动它需要两步 1.创建需要启动的 ...
- I.Tower Defense
给你p个重塔,q个轻塔,把这些塔放在n*m的图中,这些塔会相互攻击同行同列的,轻塔不能受到攻击,重塔能承受一个塔的攻击, 问放的方法数. 先假定n < m. 可以先枚举放轻塔的个数为s,显然,方 ...
- BZOJ——1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏
http://www.lydsy.com/JudgeOnline/problem.php?id=1720 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1 ...