这几个问题都是在面试的时候遇到的。1。php中方法调用的时候采用值传递的话会把传递的参数做拷贝,那么这个拷贝是什么时候执行的?2。php中什么样的变量放在堆中,什么样的变量放在栈中?刚看到一篇文章说堆内存和栈内存分别用于保存不可变类型值和可变类型值,是这样的吗? 那php中哪些数据类型是可变的(array,object,string?),哪些是不可变的(other?)?

解决方案 »

  1.   

    深了,可能也没用了吧,你要是普通程序猿估计是用不着这些东西的吧,我理解的php,是中间者,做php就是要什么都懂,js,sql,css等等,相反php本身到一定水平好像用不了那么多了,可惜我本身没到那个水平,哎,看不清啊
      

  2.   

    1.  页面加载的时候。2.  放在煤堆里。让面试官去问zend公司好了。   
      

  3.   

    好名称!!!出这样试题的考官如果不是书呆子,那么就是饭桶!
    1。php中方法调用的时候采用值传递的话会把传递的参数做拷贝,那么这个拷贝是什么时候执行的?
    在该方法执行时进行拷贝2。php中什么样的变量放在堆中,什么样的变量放在栈中?刚看到一篇文章说堆内存和栈内存分别用于保存不可变类型值和可变类型值,是这样的吗? 那php中哪些数据类型是可变的(array,object,string?),哪些是不可变的(other?)?
    所有的变量都存放于变量表中,并置于堆中
    所有数据类型都是可变的,不存在不可变的不要拿 C/C++ 的概念来硬套 PHP
      

  4.   

    我猜这个公司要招你去开发php.....不是用php开发....是开发php本身.....
      

  5.   

    也不能这么说。不去深入了解“所以然”,当然也可以正常使用;但如果你有兴趣去了解,会有助于你更深入地掌握这种语言,更自信地驾驭这种语言。从面试官的角度看,这种题不是考察“知识”的,而是考察学习方法、学习能力的,答不出来不减分,答对了会加分。似乎应该是 copy-on-write 吧。就是说,当方法体内对“形参”进行修改操作时,PHP 引擎才会对这个值进行拷贝。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)[/size]
      

  6.   

    面试你的人估计是PHP研究生。一辈子就在学校里研究了PHP,而且都是理论。
      

  7.   

    真该去开发PHP了,不是PHP开发
      

  8.   

    很明显,面试官是java/c出身的!学PHP时自然而然把以前学的东西融入了,但这与做PHP开发意义不是很大!
    第1个问题可能是想问在什么情况下触发copy-on-write机制
    第2个问题可能是想问简单数据类型与复杂数据类型在内存中的分配与布局(即对象框架),以及如何实现类似于动态数组的东西
      

  9.   

    对呀,我感觉也是,不过研究一下,c/c++还是不错的,有些时候我们自己需要写个扩展加载进去。不过单纯从php开发角度来说,这个P用没有,你只需要写高效的解决问题的code就OK了。