一道关于PHP的代码题星期一, 十一月 3. 2008
引用
引用此文章特定的网址
没有引用
回复
回复显示方式
(直线程 | 分线程)
我的猜测,$val是在$data外面临时开辟的内存空间。
循环0: array(a, b, c) $val 引用 $data[0] = a 的地址; 循环1: array(b, b, c) $val = b, 由于$val 引用了$data[0]的地址,所以,$data[0] = b,同时 $val 引用 $data[1] = b 的地址; 循环2: array(b, c, c) 原理同循环1; 执行程序验证了我的结果,但不知道我的解释是否正确,望不吝赐教。:)
blueManta说得很对。
举例说明变量引用(reference): $a = NULL; // 释放变量所占用的内存空间(如果该变量已经存在的话) $a = $b; // $a复制了变量$b的值。这个赋值导致变量$a创建并指向一个新的内存空间($a指向该内存空间所在地址);$a和$b指向不同的内存空间(指向不同的内存空间地址)。对$a的操作不影响$b(除非$b是个对象)。 $a = &$b; // $a成为一个引用(引用类型的变量),直接指向变量$b。$a和$b指向相同的内存空间。通常情况下,对$a的操作等同于对$b进行操作。 文中所述数组$data的完整表达形式如下: $data = array( 0 => 'a', // 内存空间A 1 => 'b', // 内存空间B 2 => 'c', // 内存空间C ); 循环过程: $key = 0; $val = 'a'; // $val复制了变量$data[0]的值。这个赋值导致变量$val创建并指向一个新的内存空间X;$val和$data[0]指向不同的内存空间。 $val = &$data[0]; // $val成为一个引用,直接指向变量$data[0](原始数组第一个单元)。$val和$data[0]指向相同的内存空间A。 $key = 1; $val = 'b'; // 赋值操作导致$val所指向的内存空间的值被改变了;$data[0]指向相同的内存空间,所以$data[0]的值也改变了。 $val = &$data[1]; // $val还是一个引用,不过现在指向变量$data[1](原始数组第二个单元)。$val和$data[1]指向相同的内存空间B。 $key = 2; $val = 'c'; // 赋值操作导致$val所指向的内存空间的值被改变了;$data[1]指向相同的内存空间,所以$data[1]的值也改变了。 $val = &$data[2]; // $val还是一个引用,不过现在指向变量$data[2](原始数组第三个单元)。$val和$data[2]指向相同的内存空间C。 可参考PHP.net网站关于array、foreach和reference三个章节中的相关说明。
我觉得对以下三点有所了解,这个题就很自然很简单了:
1、zend的zval(struct _zval_struct)的定义 2、foreach是复制还是引用 3、PHP的copy on write、change on write和reference counter机制
谢谢关注。
个人生活最近一年基本没有什么变化,工作依旧,没有换过。只是有各种生活琐事,而且也在寻找、考虑个人发展的突破口。这样一来,就觉得可支配的剩余时间就少多了。网络是生活的一部分,但并非必需品,因此更新网站的频率就少多了(虽然我依然一直不时更新“我的百科”网页里面的年鉴部分来记录自己的日常琐事)。 祝你好运。
你好。
搜索TN visa时偶然发现你的网站,内容十分详尽。我在NM,现正在找工作,最近一年在做LAMP和Symfony的开发,不知道你们公司现在是否还在招人?
最近2年半一直在招PHP,不过最近好像刚把招人的广告给下了,可能是因为整体向Java转移的缘故。可以试着投一下简历,但最好PHP/Java俱佳。普通技术水平的话尽量就不要在这里混了,不是别的,不太好混。SellingSource.com。祝你好运
谢谢你的回复。不过,现在几乎所有的公司都在提高门槛,对于刚毕业的学生来说经验却还是原地踏步。所以只要是机会只能尽量尝试,至于技术是否普通,待实践去检验好了。
If you want to buy real estate, you will have to get the www.lowest-rate-loans.com. Moreover, my brother commonly utilizes a credit loan, which occurs to be the most fast.
The buy dissertation services are still looking for the good enough idea about this post for their thesis abstract making.
To accomplish the thesis summary just about this good topic seems to be not easy but you cope with it. If every writer was as good as you are, scholars would ne'er have got any problems with the thesis writing service.
That is not really easy to complete already written essays and I propose to buy an essay about this topic at the writing services.
Masterfully copyied story, if only all bloggers showed the alike matter as you, the internet would be a much more effectively locus. And it’s well known that It is not work that kills gentleman, it is worry. Can I recommend you a positive place where you can find academic essay. Keep the articles coming!
Right. I like very much the articles drafted in view of this. A shopmate announce me your site, ever since my first visit, I have been absorbed. Don't spend your life in questions and concerns, just order original custom papers. Keep the articles coming!
|
Google the Site最新评论最新文章
网志文字类别近日个人动态最近在忙些什么: 最近在听些什么: 最近在研究什么: 最近在看些什么: |