- 浏览: 99389 次
- 性别:
- 来自: 天津
最新评论
-
runfriends:
kidneyball 写道runfriends 写道楼主你用的 ...
「译」在java中,字符串的加法是如何实现的? -
kidneyball:
runfriends 写道楼主你用的是谁家的编译器啊?我用jd ...
「译」在java中,字符串的加法是如何实现的? -
runfriends:
so the original article is inco ...
「译」在java中,字符串的加法是如何实现的? -
runfriends:
所以前面我说的那一些对jdk7也适用
「译」在java中,字符串的加法是如何实现的? -
runfriends:
楼主你用的是谁家的编译器啊?我用jdk6、jdk7、eclip ...
「译」在java中,字符串的加法是如何实现的?
本文翻译改编自:http://stackoverflow.com/questions/1532618/is-there-a-function-make-a-copy-of-a-php-array-to-another
原文链接:http://www.tjwzjs.cn/news/knowledge/2012/1218/function-copy-a-array-to-another.html
问:“如何在php中实现数组的拷贝?php数组是基于值拷贝还是引用拷贝呢?”
谢谢 @jamcode 的提醒,我对原文理解犯了一个很大的错误,附原文:
Is there a function make a copy of a PHP array to another?
I have been burned a few times trying to copy PHP arrays. I want to copy an array defined inside an object to a global outside it.
在PHP中如何实现这种拷贝呢?
下面写一个简单的拷贝代码:
$a = array();
$b = $a;
$b['foo'] = 42;
var_dump($a);
当我们运行这段代码时,得到
array(0) {
}
可见,我们修改了B的值,但是A却没有相应的改变。于是我们换一段代码试试:
$a = new StdClass();
$b = $a;
$b->foo = 42;
var_dump($a);
此次的输出结果变成了:
object(stdClass)#1 (1) {
["foo"]=>
int(42)
}
ArrayObject 的行为虽然是一个数组,但是他确实是一个对象,它是通过传递引用实现赋值的。
评论
8 楼
nakupanda
2012-12-18
deep copy = recursive copy 吧
see jQuery.extend()
see jQuery.extend()
7 楼
jamcode
2012-12-18
哎,建议你不要再凭主观臆断去理解这些概念了。
千万不要再写出一篇解释那个“值和引用”了。光“值和引用”这个概念,不少有经验的程序员都躺枪,解释了错了。楼主你就别再解释啦。解释了只会误导别人的。
我不是机器翻译的,纯个人理解。不是深拷贝,也不是浅拷贝。是值和引用。
千万不要再写出一篇解释那个“值和引用”了。光“值和引用”这个概念,不少有经验的程序员都躺枪,解释了错了。楼主你就别再解释啦。解释了只会误导别人的。
web001 写道
jamcode 写道
唉,楼主我服了你了。
你英语差成这样还敢翻译。
原文里面压根就没提到deep copy这个词。机器翻译都不会翻译出“深拷贝”这个词的吧。你怎么会把它和深拷贝联系在一起的呢?
I 服了 You!
文章是翻译的:http://stackoverflow.com/questions/1532618/is-there-a-function-make-a-copy-of-a-php-array-to-another
你英语差成这样还敢翻译。
原文里面压根就没提到deep copy这个词。机器翻译都不会翻译出“深拷贝”这个词的吧。你怎么会把它和深拷贝联系在一起的呢?
I 服了 You!
web001 写道
jamcode 写道
楼主我对你彻底无语了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
引用
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
文章是翻译的:http://stackoverflow.com/questions/1532618/is-there-a-function-make-a-copy-of-a-php-array-to-another
我不是机器翻译的,纯个人理解。不是深拷贝,也不是浅拷贝。是值和引用。
6 楼
web001
2012-12-18
jamcode 写道
唉,楼主我服了你了。
你英语差成这样还敢翻译。
原文里面压根就没提到deep copy这个词。机器翻译都不会翻译出“深拷贝”这个词的吧。你怎么会把它和深拷贝联系在一起的呢?
I 服了 You!
文章是翻译的:http://stackoverflow.com/questions/1532618/is-there-a-function-make-a-copy-of-a-php-array-to-another
你英语差成这样还敢翻译。
原文里面压根就没提到deep copy这个词。机器翻译都不会翻译出“深拷贝”这个词的吧。你怎么会把它和深拷贝联系在一起的呢?
I 服了 You!
web001 写道
jamcode 写道
楼主我对你彻底无语了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
引用
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
文章是翻译的:http://stackoverflow.com/questions/1532618/is-there-a-function-make-a-copy-of-a-php-array-to-another
In PHP arrays are assigned by copy, while objects are assigned by reference. 以后一定会注意,呵呵。
5 楼
web001
2012-12-18
jamcode 写道
唉,楼主我服了你了。
你英语差成这样还敢翻译。
原文里面压根就没提到deep copy这个词。机器翻译都不会翻译出“深拷贝”这个词的吧。你怎么会把它和深拷贝联系在一起的呢?
I 服了 You!
文章是翻译的:http://stackoverflow.com/questions/1532618/is-there-a-function-make-a-copy-of-a-php-array-to-another
你英语差成这样还敢翻译。
原文里面压根就没提到deep copy这个词。机器翻译都不会翻译出“深拷贝”这个词的吧。你怎么会把它和深拷贝联系在一起的呢?
I 服了 You!
web001 写道
jamcode 写道
楼主我对你彻底无语了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
引用
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
文章是翻译的:http://stackoverflow.com/questions/1532618/is-there-a-function-make-a-copy-of-a-php-array-to-another
我不是机器翻译的,纯个人理解。不是深拷贝,也不是浅拷贝。是值和引用。
4 楼
jamcode
2012-12-18
唉,楼主我服了你了。
你英语差成这样还敢翻译。
原文里面压根就没提到deep copy这个词。机器翻译都不会翻译出“深拷贝”这个词的吧。你怎么会把它和深拷贝联系在一起的呢?
I 服了 You!
文章是翻译的:http://stackoverflow.com/questions/1532618/is-there-a-function-make-a-copy-of-a-php-array-to-another
你英语差成这样还敢翻译。
原文里面压根就没提到deep copy这个词。机器翻译都不会翻译出“深拷贝”这个词的吧。你怎么会把它和深拷贝联系在一起的呢?
I 服了 You!
web001 写道
jamcode 写道
楼主我对你彻底无语了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
引用
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
文章是翻译的:http://stackoverflow.com/questions/1532618/is-there-a-function-make-a-copy-of-a-php-array-to-another
3 楼
web001
2012-12-18
jamcode 写道
楼主我对你彻底无语了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
引用
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
谢谢 @jamcode 提醒,果然错的离谱,原文不是这个意思,是我误解了。
2 楼
web001
2012-12-18
jamcode 写道
楼主我对你彻底无语了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
引用
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
文章是翻译的:http://stackoverflow.com/questions/1532618/is-there-a-function-make-a-copy-of-a-php-array-to-another
1 楼
jamcode
2012-12-18
楼主我对你彻底无语了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
你有水军的吧?这个文章都有6个人顶?
错的离谱。
连深Copy的概念都搞不清。
PHP中数组在传递时,都是进行了的深拷贝。除非使用"&" $b=&$a;才不会拷贝。
引用
深拷贝是面向对象编程的一个很重要的概念,它说的是,把一个数组或者对象拷贝给另外一个,这种拷贝不仅仅是把数组A的值赋值给了数组B,而是数组A和数组B指向了同一个空间,也就是,B就是A的别名。
妹啊。深拷贝是面向对象编程的一个很重要的概念?是北大青鸟的培训老师这样讲过的还是哪个伪JAVA牛讲过的?
我怀疑楼主是机器人发的帖子,错得这么离谱法子,发这种误导人的帖子。我想点“举报”按钮了。
发表评论
-
在PHP中, 为什么</script>不产生语法解析错误
2012-12-18 14:57 1045PHP作为主流网站建设语言,在使用过程中有很多陷阱,需要程序员 ... -
PHP框架queryphp教程:入门十一 权限系统设计
2012-12-14 10:14 1571权限系统设计说明: 主要组成有三种身份 超级 ... -
PHP框架queryphp教程:入门十 自动生成HTML
2012-12-14 10:10 1123现在很多网站都是重 ... -
PHP框架queryphp教程:入门九 如何去掉index.php
2012-12-14 10:09 1100去除index.php测试 C:\WINDOWS\sy ... -
PHP设计模式:单件模式(Singleton Pattern)
2012-12-13 11:10 1115在上一章中,我们介绍了PHP设计模式里面的工厂模式。工厂模式是 ... -
PHP设计模式:工厂模式(The Factory Pattern)
2012-12-12 14:52 1150在面向对象的编程中, ... -
PHP框架queryphp教程:入门八 路由跳转
2012-12-10 11:43 1244路由说明 path_info方式 testframe ... -
PHP框架queryphp教程:入门七 给模板赋值
2012-12-10 11:42 883可以使用smarty模板引擎,参见core/view.p ... -
PHP框架queryphp教程:入门六 视图模板
2012-12-10 11:42 938使用原生php代码标签 看手册: PHP 提供了 ... -
PHP框架queryphp教程:入门三 ORM模型生成
2012-12-05 10:00 941怎么生成模型数据库,又怎么调用 现在我在数据库中添加 ... -
PHP框架queryphp教程:入门一 Hello World
2012-12-05 09:23 831配置好php环境 不会配置可以看下附录php安装 下载 ... -
PHP框架queryphp教程:安装说明
2012-12-04 10:34 2270在上一章中,我们介绍了queryphp,本章我们将讲解如 ... -
PHP框架queryphp教程:简介
2012-12-04 09:18 861本文来自:http://www.tjwzjs.cn/news/ ... -
如何提升PHP网站安全性的5个技巧
2012-11-16 09:07 1096技巧1:使用合适的错误报告 一般在网站开发过程中,很多 ... -
自己动手设计 PHP MVC 框架(一)——URL
2012-11-06 13:18 3558在框架盛行的今天,MVC 也不再是神话。 经常听到很多程 ... -
php容易被错误使用的empty函数
2012-09-04 15:42 749在php的官方手册中写 ... -
phpcms和dedecms比较
2012-08-30 10:51 2720现在做一个网站是越来越容易了,很多公司和个人站长开始使用 ... -
6个常见的 PHP 安全性攻击
2012-08-20 08:50 1049了解常见的PHP应用程序安全威胁,可以确保你的PHP应用 ... -
跟我学网站开发框架CodeIgniter之url篇
2012-08-08 09:50 1827如何删除index.php文件 估计很多人学习CodeI ... -
用PHP建设网站的优缺点
2012-08-01 09:21 735再 iteye 的论坛上,有一网友说道类似问题,他们 ...
相关推荐
这个`$shop`变量是一个典型的二维数组,其中包含了三个一维数组。接下来,我们将演示两种方法来向这些一维数组添加新的值。 **示例1:引用循环变量的地址赋值** 在这个示例中,我们使用了引用符号`&`在`foreach`...
在PHP中,数组是按值传递的,但这个“值”是数组的拷贝,而不是整个数组的引用。这意味着,当你在函数内部修改数组时,原始数组不会受到影响。以下是一个PHP的例子: ```php <?php $arr = array(3, 9, 4); function...
然而,foreach循环有一个限制,即它不是直接操作原数组,而是在遍历前复制一份原数组的拷贝。这可能导致时间和空间的开销。因此,在遍历大数组或性能敏感的应用中,for循环可能更加合适。for循环可以让我们控制数组...
涵盖了PHP语言的基础知识,...php移动、拷贝和删除文件 这篇文章从PHP的基础知识讲起,循序渐进地介绍了PHP的语法、数据类型、流程控制、函数、数组等核心知识点。对于初学者来说,这个教程可以作为入门学习的必备资料。
对于数组来说,如果你将一个数组赋给另一个数组,那么这个赋值操作实际上创建了数组的一个副本。但是,如果你使用引用,那么两个数组变量将会指向同一个数组。因此,对一个数组的任何修改都会反映到另一个数组上。...
在PHP编程中,数组是一种非常基础且重要的数据结构,它允许我们存储一组相关的数据。在处理数组时,循环操作是必不可少的,常见的两种循环方法是`foreach`和`while`。这两种循环各有特点,适用于不同的场景。 首先...
PHP是世界上最受欢迎的服务器端脚本语言之一,从PHP4到PHP5的升级是其发展历程中的一个重要里程碑。PHP5引入了大量新特性,增强了类型检查,提升了性能,并修复了许多安全问题。然而,这同时也意味着那些基于PHP4的...
在内部展开后就会是一个函数,从这个角度来看,PHP 函数在内部也是对应一个函数指针。 运行机制:PHP 的运行机制可以分成三个阶段:Parse、Compile 和 Execute。在 PHP 内部,本身也是存在编译的过程。并且据此产生...
一、精简说明: 删除所有"_"开头的文件和文件夹 ... // 创建一个fckeditor对象 $oFCKeditor->BasePath=$BasePath; $oFCKeditor->Value=$fileinfo; // 设置表单初始值 $oFCKeditor->Create(); // 调用类中方法,必须 ?>
通过阅读本书,你将能够提升到一个更高的层次,从内部视角去认识PHP,从而优化和定制化你的PHP应用。 在PHP的世界里,扩展是增强其功能和性能的重要手段。它们是用C语言编写的,可以直接与PHP引擎交互,提供原生...
在 $autoload['helper'] 这个数组里面增加 ip_helper.php辅助函数的加载, 注意,只需要添加 _helper.php 前面的文件名即可, 如 ip ,即表示加载 ip_helper.php, 如果有多个辅助函数需要加载的话,直接真加一个数组值...
解答学生问题--一个ip绑定多个域名 8-19 2.php运行过程时序图 php书写规范 8-19 3.php基本语法介绍 php数据类型介绍 8-19 4.整型细节说明 8-19 5.布尔细节 浮点数细节 字符串细节 算术运算符① 8-19 6.算术运算符② ...
PHP中的引用是符号表别名的概念,其作用是允许两个或更多的变量名指向同一个变量内容。这与C语言的指针不同,因为引用是通过符号表来实现的,而不是通过内存地址。在Unix系统中,文件名可以被视为目录条目,而文件...
史上最全韩顺平毕业班视频------这里只有10月份,8,9,11月份在另外一个文件下。 传智播客PHP就业班视频课程列表 8-11 1.html介绍 html运行原理① 8-11 2.html运行原理② html文件基本结构 html元素和属性 8-11 3....
在PHP中,多个变量可以共享同一个`zval`实例,通过`refcount`字段来跟踪引用的数量。当引用计数变为0时,`zval`将被垃圾回收器释放。 ##### 1.1.3 `zval`状态 `zval`中的`is_ref`字段表示当前`zval`是否是引用类型...
史上最全韩顺平毕业班视频------这里只有9月份,8,10,11月份在另外一个文件下。 传智播客PHP就业班视频课程列表 8-11 1.html介绍 html运行原理① 8-11 2.html运行原理② html文件基本结构 html元素和属性 8-11 3....
- `array_add()` 并不是一个内置函数,可能是在某些自定义库中定义的。 - `array_push($users, 'john');` 也会向数组末尾添加'john'。 - `$users ||= 'john';` 是短路或运算符,如果$users为空则赋值为'john',...