首页  >  文章  >  后端开发  >  php程序员面试题及答案

php程序员面试题及答案

WBOY
WBOY原创
2016-07-25 08:59:271306浏览
  1. class my_class
  2. {
  3. function my_funct ($my_param)
  4. {
  5. user_error ("please define me", E_ERROR);
  6. }
  7. function b()
  8. {
  9. return 10;
  10. }
  11. }
  12. ?>
复制代码

A.多重继承 B.接口 C.抽象方法 D.private 方法 E.函数重载(function overloading)

7. 假设定义了一个 testclass 类,它的构造函数的函数名是什么? 15 A.__construct B.initialize C.testclass D.__testclass E.只有 pHp5 才支持构造函数

8. 一个类如何覆盖默认的序列化机制? A.使用__shutdown 和__startup 方法 B.调用 register_shutdown_function()函数 C.使用__sleep()和__wakeup()方法 D.无法覆盖默认序列化机制 E.使用 ob_start()将类放入输出缓冲中

9. 以下哪些面向对象的概念无法在 pHp4 中实现? 抽象类 Final 类 public、private、protected(ppp)方法 接口 A.抽象类 B.ppp 方法 C.ppp 方法和接口 D.以上所有都不可用 E.以上所有都可用

10.如何在类的内部调用 mymethod 方法? A.$self=>mymethod(); B.$this->mymethod(); C.$current->mymethod(); D.$this::mymethod() E.以上都不对

11.以下脚本输出什么?

  1. class my_class
  2. {
  3. var $my_var;
  4. function _my_class ($value)
  5. {
  6. $this->my_var = $value;
  7. }
  8. }
  9. $a = new my_class (10);
  10. echo $a->my_var;
  11. ?>
复制代码

A.10 B.Null C.Empty D.什么都没有 E.一个错误

12.以下脚本输出什么?

  1. class my_class
  2. {
  3. var $value;
  4. }
  5. $a = new my_class;
  6. $a->my_value = 5;
  7. $b = $a;
  8. $b->my_value = 10;
  9. echo $a->my_value;
  10. ?>
复制代码

A.10 B.5 C.2 D.Null E.什么都没有

13.以下脚本输出什么?

  1. $global_obj = null;
  2. class my_class
  3. {
  4. var $value;
  5. function my_class()
  6. {
  7. global $global_obj;
  8. $global_obj = &$this;
  9. }
  10. }
  11. $a = new my_class;
  12. $a->my_value = 5;
  13. $global_obj->my_value = 10;
  14. echo $a->my_value;
  15. ?>
复制代码

A.5 B.10 C.什么都没有 D.构造函数将报错 E.510

14.考虑如下一段代码,执行时,$eight_tenths->to_string 方法返回的字符串是 8/10 而不是希望的 4/5,为什么?

  1. class fraction {

  2. var $numerator;
  3. var $denominator;
  4. function fraction($n, $d) {
  5. $this->set_numerator($n);
  6. $this->set_denominator($d);
  7. }
  8. function set_numerator($num) {
  9. $this->numerator = (int)$num;
  10. }
  11. function set_denominator($num) {
  12. $this->denominator = (int)$num;
  13. }
  14. function to_string() {
  15. return “{$this->numerator} / {$this->denominator}”;
  16. }
  17. }
  18. function gcd($a, $b) {

  19. return ($b > 0) ? gcd($b, $a % $b) : $a;
  20. }
  21. function reduce_fraction($fraction) {

  22. $gcd = gcd($fraction->numerator,
  23. $fraction->denominator);
  24. $fraction->numerator /= $gcd;
  25. $fraction->denominator /= $gcd;
  26. }
  27. $eight_tenths = new fraction(8,10);
  28. /* Reduce the fraction */
  29. reduce_fraction($eight_tenths);
  30. var_dump($eight_tenths->to_string());
  31. ?>
复制代码

A.reduce_fraction 函数必须返回一个值 B.reduce_fraction 函数必须接受一个整型值 C.gcd 函数有问题 D.必须通过引用的方式传递$eight_tenths 对象 E.对象的实例不能传递给方法以外的其他结构。

15.以下代码是做什么的?

  1. require_once("myclass.php");
  2. myclass::mymethod();
  3. ?>
复制代码

A.静态调用 mymethod 方法 B.生成 myclass 的实例并调用 mymethod 方法 C.产生一个语法错误 D.默认 myclass 类最后被创建出的实例并调用 mymethod() E.调用名为 myclass::mymethod()的函数

16.pHp 中有静态类变量吗? A.有 B.没有

17.以下脚本输出什么?

  1. class a
  2. {
  3. function a ($x = 1)
  4. {
  5. $this->myvar = $x;
  6. }
  7. }
  8. class b extends a
  9. {
  10. var $myvar;
  11. function b ($x = 2)
  12. {
  13. $this->myvar = $x;
  14. parent::a();
  15. }
  16. }
  17. $obj = new b;
  18. echo $obj->myvar;
  19. ?>
复制代码

A.1 B.2 C.一个错误,因为没有定义 a::$myvar D.一个警告,因为没有定义 a::$myvar E.什么都没有

18.如何即时加载一个类? A.使用__autoload 魔术函数 B.把它们定义为 forward 类 C.实现一个特殊的错误处理手段 D.不可能 E.用有条件限制的 include 来包含它们

19.__________提供了一个高性能的解决面向对象中重复出现的问题的方案? 答案:__________

20.以下脚本输出什么?

  1. class a
  2. {
  3. function a()
  4. {
  5. echo \parent called\;
  6. }
  7. }
  8. class b
  9. {
  10. function b()
  11. {
  12. }
  13. }
  14. $c = new b();
  15. ?>
复制代码

A.parent called B.一个错误 C.一个警告 D.什么都没有 1 2 下一页 尾页



声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn