返回信息流我不是北邮人,希望大神们给点建议,我算是半路出家吧,离上班之前还有点时间,是把PHP搞熟练还是学习数据结构和算法这个我一直没怎么接触的领域,谢谢~
这是一条镜像帖。来源:北邮人论坛 / python / #5515同步于 2015/3/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
[PHP]去公司搞PHP开发,求问,数据结构和算法需要到什么程度
tongzhuoyuan
2015/3/10镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
给你个练习题:
$a = array(1,2,3,4,5);
$b = $a;
$b[2] = "Hello";
echo $a[2], PHP_EOL; # 输出什么?
$c = array(1,2,3,4,5);
$d =& $c[2];
$e = $c;
$e[2] = "Hello";
echo $c[2], PHP_EOL; # 输出什么?
$f = array(1,2,3,4,5);
$g =& $f[2];
$h = $f;
unset($g);
$h[2] = "Hello";
echo $f[2], PHP_EOL; # 输出什么?
1,3都等于3明白,第二个为什么等于hello
【 在 nuanyangyang 的大作中提到: 】
: 给你个练习题:
: [code=php]
: $a = array(1,2,3,4,5);
: ...................
【 在 tongzhuoyuan 的大作中提到: 】
: 1,3都等于3明白,第二个为什么等于hello
一个让PHP自己的开发人员闻风丧胆的bug。
https://bugs.php.net/bug.php?id=20993
我在这里黑过它,http://bbs.byr.cn/article/Linux/131124 ,但为了清除,还是简单地说一下吧(黑PHP是我的课余娱乐活动之一)。主要内容是:php的值是可变的;拷贝(等号“=”赋值)是按值拷贝,甚至数组都是按值拷贝。这就是为什么如果拷贝一个数组,改变其中一个并不会改变另一个。显然,这种拷贝效率很高,php的开发人员于是自作聪明,实现了“copy on write”。也就是赋值的时候实际上共享这个值,而在值里做引用计数,看看有几个变量使用了这个值。但在修改值的时候,如果发现这个值被共享了,就拷贝一份再修改。
但是,一旦这个copy on write和引用“=&”运算符混用,copy on write就露馅了。只要一个值用这种方法被两个变量“引用”了,它就设定为“共享”,这时候修改是不会拷贝的。所以,php的值的语义究竟是按值拷贝还是按引用拷贝,完全取决于这个对象是否被共享。这种疯狂的语义是很糟糕的设计,让程序的行为很难判断。更糟糕的是,php已经陷入了这种语义的坑里,改不了了。看那个bug贴的这一段:
看,这是2002年的决定。现在已经13年了,PHP还这么烂。楼主还想学PHP吗?
学,为啥不学,有bug就有呗,它不完美也能养活我
【 在 nuanyangyang 的大作中提到: 】
:
: 一个让PHP自己的开发人员闻风丧胆的bug。
: https://bugs.php.net/bug.php?id=20993
: ...................
【 在 tongzhuoyuan 的大作中提到: 】
: 学,为啥不学,有bug就有呗,它不完美也能养活我
学Java吧,照样搞web,还可以做后端。