当前位置:文档之家› PHP 面向对象面试题

PHP 面向对象面试题

PHP 面向对象面试题
PHP 面向对象面试题

1. 写出php 的public、protected、private 三种访问控制模式的区别(新浪网技术部)

public:公有,任何地方都可以访问

protected:继承,只能在本类或子类中访问,在其它地方不允许访问private:私有,只能在本类中访问,在其他地方不允许访问

相关题目:请写出PHP5 权限控制修饰符

private protected public

2. 设计模式考察:请用单态设计模式方法设计类满足如下需求:

请用 PHP5 代码编写类实现在每次对数据库连接的访问中都只能获得唯一的一个数据库连接,具体连接数据库的详细代码忽略,请写出主要逻辑代码(新浪网技术部)

class Mysql

{

private static $instance = null;

private $conn;

// 构造方法,设置为private,不允许通过new获得对象实例

private function __construct(argument)

{

$conn = mysql_connect("localhost","root","root");

}

// 获取实例方法

public function getInstance()

{

if (!self::$instance instanceof self) {

self::$instance = new self;

}

return self::$instance;

}

// 禁止克隆

private function __clone(){}

}

// 获得对象

$db = Mysql::getInstance();

?>

3. 写出下列程序的输出结果(新浪网技术部)

class a

{

protected $c;

public function a()

{

$this->c = 10;

}

}

class b extends a

{

public function print_data()

{

return $this->c;

}

}

$b = new b();

echo $b->print_data();

?>

输出结果 10

4. PHP5 中魔术方法函数有哪几个,请举例说明各自的用法(腾讯 PHP 工程师笔试题)

__sleep serialize 之前被调用

__wakeup unserialize 时被调用

__toString 打印一个对象时被调用

__set_state 调用 var_export 时被调用,用__set_state的返回值作为

var_export 的返回值

__construct 构造函数,实例化对象时被调用

__destruct 析构函数,当对象销毁时被调用

__call 对象调用某个方法,若存在该方法,则直接调用,若不存在,则调用__call 函数

__get 读取一个对象属性时,若属性存在,则直接返回,若不存在,则调用__get 函数

__set 设置一个对象的属性时,若属性存在,则直接赋值,若不存在,则调用__set 函数

__isset 检测一个对象的属性是否存在时被调用

__unset unset 一个对象的属性时被调用

__clone 克隆对象时被调用

__autoload 实例化一个对象时,如果对应的类不存在,则该方法被调用

相关题目:请写出 php5 的构造函数和析构函数

构造函数:__construct

析构函数:__destruct

5. 如何使用下面的类,并解释下面什么意思?

class test{

function Get_test($num){

$num = md5(md5($num)."En");

return $num;

}

}

$testObject = new test();

$encryption = $testObject->Get_test("itcast");

echo $encryption;

?>

双重 md5 加密

6. How would you declare a class named “myclass” with no methods or properties?(Yahoo)

class myclass{};

相关题目:如何声明一个名为“myclass”的没有方法和属性的类?

7. How would you create an object, which is an instance of “myclass”? (Yahoo)

$obj= new myclass();

相关题目:如何实例化一个名为“myclass”的对象?

8. How do you access and set properties of a class from within the class?(Yahoo)

使用语句:$this->propertyName,例如:

class mycalss{

private $propertyName;

public function __construct()

{

$this->propertyName = "value";

}

}

?>

9. The code below ___________ because ____________.(腾讯)

class Foo{

?>

function bar(){

print "bar";

}

}

?>

A. will work, class definitions can be split up into multiple PHP blocks.

B. will not work, class definitions must be in a single PHP block.

C. will not work, class definitions must be in a single file but can be in multiple PHP blocks.

D. will work, class definitions can be split up into multiple files and multiple PHP blocks.

答案: B

10. 类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是____。

serialize() 和 unserialize()

11. 在 PHP 中,如果派生类与父类有相同名字的函数,则派生类的函数会替换父类的函数,程序结果为

class A{

function disName(){

echo "Picachu";

}

}

class B extends A{

var $tmp;

function disName(){

echo "Doraemon";

}

}

$cartoon = New B;

$cartoon->disName();

?>

A. tmp

B. Picachu

C. disName

D. Doraemon

E. 无输出

答案:D

12. 接口和抽象类的区别是什么?

抽象类是一种不能被实例化的类,只能作为其他类的父类来使用。抽象类是通过关键字abstract 来声明的。

抽象类与普通类相似,都包含成员变量和成员方法,两者的区别在于,抽象类中至少要包含一个抽象方法,抽象方法没有方法体,该方法天生就是要被子类重写的。

抽象方法的格式为:abstract function abstractMethod();

接口是通过 interface 关键字来声明的,接口中的成员常量和方法都是 public 的,方法可以不写关键字 public,接口中的方法也是没有方法体。接口中的方法也天生就是要被子类实现的。

抽象类和接口实现的功能十分相似,最大的不同是接口能实现多继承。在应用中选择抽象类还是接口要看具体实现。

子类继承抽象类使用 extends,子类实现接口使用 implements。

13. 类中如何定义常量、如何类中调用常量、如何在类外调用常量。

类中的常量也就是成员常量,常量就是不会改变的量,是一个恒值。定义常量使用关键字 const,例如:const PI = 3.1415326;

无论是类内还是类外,常量的访问和变量是不一样的,常量不需要实例化对象,访问常量的格式都是类名加作用域操作符号(双冒号)来调用,即:类名:: 类常量名。

14. autoload()函数是如何运作的?

使用这个魔术函数的基本条件是类文件的文件名要和类的名字保持一致。

当程序执行到实例化某个类的时候,如果在实例化前没有引入这个类文件,那么就自动执行__autoload()函数。

这个函数会根据实例化的类的名称来查找这个类文件的路径,当判断这个类文件路径下确实存在这个类文件后就执行 include 或者 require 来载入该类,然后程序继续执行,如果这个路径下不存在该文件时就提示错误。

15. 哪种OOP设置模式能让类在整个脚本里只实例化一次?(奇矩互动)

A. MVC

B. 代理模式

C. 状态模式

D. 抽象工厂模式

E. 单件模式

答案:E

16. 借助继承,我们可以创建其他类的派生类。在PHP中,子类最多可以继承几个父类?(奇矩互动)

A. 1个

B. 2个

C. 取决于系统资源

D. 3个

E. 想要几个有几个

答案:A

17. 执行以下代码,输出结果是(奇矩互动)

abstract class a{

function __construct()

{

echo "a";

}

}

$a = new a();

?>

A. a

B. 一个错误警告

C. 一个致命性的报错

答案:C 因为类a是抽象类,不能被实例化

18. 执行以下代码,输出结果是

class a{

function __construct(){

echo "echo class a something";

}

}

class b extends a{

function __construct(){

echo "echo class b something";

}

}

$a = new b();

?>

A. echo class a something echo class b something

B. echo class b something echo class a something

C. echo class a something

D. echo class b something

答案:D

类 b 继承自类 a,两个类都定义了构造函数,由于二者名字相同,所以子类中的构造函数覆盖了父类的构造函数,要想子类对象实例化时也执行父类的构造函数,需要在子类构造函数中使用 parent::__construct()来显示调用父类构造函数。

19. 请定义一个名为MyClass的类,这个类只有一个静态方法justDoIt。(卓望)

class MyClass{

public static function justDoIt(){

}

}

?>

20. 只有该类才能访问该类的私有变量吗?(卓望)

是的

21. 写出你知道的几种设计模式,并用php代码实现其中一种。(卓望)

单例模式,工厂模式

单例模式实现代码见第二题

填空题:

1、对象的串行化函数:__serialize() __

2、面向对象的三大特性封装继承多态

3、定义类的关键字_______________,类继承的关键字____________,定义接口的关键字_________________________,接口继承的关键字________________________.

4、文件包含函数(四个):include(),include_once(),require(),require_once()

5、浏览器内置的Ajax对象是XMLHttpRequest __\______________________

6、程序流程控制的分类(三大程序结构):_顺序选择循环_____________________________________。

7、表单的传值方式有哪两种post和get _______________________________________

8、如何接收表单传递过来的值,涉及的全局数组有_$_GET\$_POST\$_REQUEST\$_FILES _.

9、PHP.ini配置文件中设置显示错误的指令

10、自动加载类的函数_autoload _

程序阅读题:

1、以下程序的执行结果_________________________________

简答题:

1、抽象类和接口的概念以及区别

接口类就是一个类的领导者,指明方向,非抽象型子类必须实现接口所指定的全部方法。

抽象类就是一个类的服务提供商,拥有众多服务,当需要的时候你来用就可以,如果你觉得抽象类提供的服务不满意,你还可以自己在子类重新来做。

2、简述Session 和 cookie的区别

session 就好像是保存在内存中的东西。。当次访问的一个全局变量

cookie就好像是硬盘中的东西,停电关机。。下次还有

3、什么是构造函数,什么是析构函数,作用是什么?

构造函数的作用:用于新建对象的初始化工作。

析构函数的作用:用于在撤销对象前,完成一些清理工作,比如:释放内存等。

4、对象封装是如何实现的,关键字有那几个,作用是什么?

5、如何重载父类的方法,举例说明

6、常用的魔术方法有哪些?举例说明

7、对象串行化的实现方法和目的?

8、什么是模板引擎,作用是什么?

2021年php面试题和答案

1、用PHP打印出前一天时间格式是-5-10 22:21:21(2分) $a = date("Y-m-d H:i:s",strtotime("-1 day")); print_r($a); 2、echo(),print(),print_r()区别(3分) echo 和print不是一种函数,是一种语言构造 int print(string $arg),只有一种参数 echo arg1,arg2;可以输出各种参数,返回void echo和print只能打印出string,不能打印出构造 print_r能打印出构造 例如 $arr = array("key"=>"value"); print_r($arr); 3、可以使HTML和PHP分离开使用模板(1分) smarty,phplib 4、使用哪些工具进行版本控制?(1分) svn,git,cvs 5、如何实现字符串翻转?(3分) 英文: strrev($a)

中文或其她文字: 中文:GB2312,代码是使用GB2312编码

php程序员面试题目

php程序员面试题目 1、以下题目,除了编程任务外其他都需要写在给你提供的草纸上。纸张是珍贵的地球资源,请节约使用。编程任务在有相应的环境时,会要求上机书写,实在没有条件,就只能写在草纸上了。 2、时间: 基础任务+进阶任务+设计任务=90分钟 编程任务=60分钟 基础任务: 1、请列举你能想到的UNIX信号,并说明信号用途。 2、请列举、你能想到的所有的字符串查找算法,并加注释简单说明。 3、有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。 4、写出、你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面) 基础任务-选作(会得到额外分数): 1、画几个你最熟悉的SERVER端模型出来(格式不重要,尽量将图画清楚,说明思路即可) 进阶任务: 1、PHP的垃圾收集机制是怎样的? 说明: 1)如果,你熟悉PHP源码,那么请从源码入手,回答些问题,会获得额外加分 2)如果,你不熟悉PHP源码,那么尽你所能,多写点东西,包括利用自己的编程直觉得到的信息,都可以。 3)对,则有分,错误不扣,不写无分。 2、请写出HTTP头,并符合以下要求: 1)这是一个post请求 2)目标:https://www.doczj.com/doc/969591589.html,:8080/test 3)POST变量: username: test

pwd: test2 intro: Hello world! 4)包含以下COOKIE信息: cur_query: you&me 说明: 1)如果,你记不得某个HTTP协议中的指令字了,那么,无奈这举是用“汉字”代替。 2)如果,你能记住更多的HTTP协议指令字,那么多写几句,总是没坏处,对吧? 3)最关键的,只需要画出正确的“轮廓”(还记得httpwatch等工具打印出来的头部吗?那就是“轮廓”的含义),也会有分数,但如果,连“轮廓”都写错了,那么就很遗憾了。 设计任务: 1、最近总有人骚扰我们的投票模块,需要你来设计一个投票限制的东东 要求如下: 1)要求每个QQ号码(假设此QQ号码在UNIT32内可以表示)10分钟这内只能投5票。 2)我们的用户很踊跃,平均每天要有2000万人左右通过此程序投票。 说明: 1)无需写代码,只需要图跟文字即可。 2)对于关键逻辑,请用图加代码表示出来,这也是对你文字表达能力的一个考验。 3)对你能想到的所有的边界条件列出来,这是对你逻辑思维全面与敏捷性的考验。 4)存储部分,尽你所能吧。如果,你需要一个自己设计的存储层,那么把这个存储层的实现,用文字+图片方式描述清楚,要是设计合理,你会获得华丽的奖分。 编程任务: 1、我们碰到了大麻烦,一个新来的传教士惹恼了上帝,上帝很愤怒,要求我们把圣经(bbe.txt)背熟,直至他说哪个单词,我们就要飞快的回答出这个单词在第几行第几个单词位置。听说你是个优秀的程序员,那么髟助我们完成这个不可能的任务吧。 要求如下: 1)/myworks/example/bbe.txt,98版本英文圣经一本 2)输入部分要求如下:php ./example.php [单词] 3)输出部分如下:[单词] 1,2 2,4 5,6表示:此单词在1行2列(第二个单词),2行4列...

PHP面试题附答案

PHP面试题附答案 问题:PHP面试题附答案回答: 1.Which of the following will not add john to the users array 1.$users[] = ‘ john '; 2.array_add($users, ' john '); 3.array_push($users, ' john '); 4.$users ||= ‘john '; An swer: 2,4 2.What ' s the differenee between sort(), asort() and ksort(),rsort() Un der what eireumsta nces would you use each of these sort():本函数对数组的值进行排序。当本函数结束时数组单元将被从最低到最高重新安排,array中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 asort():这个函数将数组的值重新排序,由小至大排列。数组的索引亦跟着值的顺序而变动。当您在程序中需要重新整理数组值的顺序时,就可以使用这个函数。 ksort():对数组按照键名排序,保留键名到数据的关联。本函数 主要用于关联数组。

rsort():本函数对数组进行逆向排序(最高到最低) 执行相反的操作。 3. What would the following code print to the Why $n um 二 10; fun cti on multiply(){ $n um 二 $num * 10; } multiply 。; echo $num; 10 4. What is the differenee between a reference regular variable How do you pass by refere nee why would you want to pass by refere nee like this fun cti ons( $vars); it likes more fast; 5. What fun cti ons can you use to add library code to the curre ntly running script ini cude() or require(); 6. What is the differe nee betwee n foo() @foo() if foo() throw a error, will be alert, but @foo() no; 7. How do you debug a PHP applicati on xdebug or use die() do it; 8. What does === do What ' s an example of something 与 sort() browser and a

比较基础的php面试题及答案

比较基础的php面试题及答案 填空题:1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量__$_SERVER[PHP_SELF]__中;而链接到当前页面的URL记录在预定义变量__$_SERVER[HTTP_REFERER]__中2.执行程序段将输出__0__。3.在HTTP 1.0中,状态码401 的含义是____;如果返回“找不到文件”的提示,则可用header 函数,其语句为____。4.数组函数arsort 的作用是__对数组进行逆向排序并保持索引关系__;语句error_reporting(2047)的作用是__报告所有错误和警告__。5.PEAR中的数据库连接字符串格式是____。6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把scrīpt标记及其内容都去掉):preg_replace(“//si”, “newinfo”, $script);7.以Apache 模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php 的文件都作为PHP脚本处理。LoadModule php5_module “c:/php/php5apache2.dll”, AddType application/x-httpd-php .php,8.语句include 和require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句__require_once||include_once__来代替它们。9.类的属性可以序列化后保存到session 中,从而以后可以恢复整个类,这要用到的函数是____。10.一个函数的参数不能是对

php程序员面试题(b卷_附答案)

1.以下哪一句不会把John 新增到users 阵列? $users[] = 'john'; 成功把John 新增到阵列users。 array_add($users,’john’); 函式array_add() 无定义。 array_push($users,‘john’); 成功把John 新增到阵列users。 $users ||= 'john'; 语法错误。 2.sort()、assort()、和ksort() 有什么分别?它们分别在什么情况下使用? sort() 根据阵列中元素的值,以英文字母顺序排序,索引键会由0 到n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。 assort() PHP 没有assort() 函式,所以可能是asort() 的笔误。 asort() 与sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。 ksort() 根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。 3.以下的代码会产生什么?为什么? $num =10; function multiply(){ $num =$num *10; } multiply(); echo$num; 由于函式multiply() 没有指定$num 为全域变量(例如global $num 或者$_GLOBALS['num']),所以$num 的值是10。 4. reference 跟一个正规的变量有什么分别?如何pass by reference?在什么情况下我们需要这样做? Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用都见到这个变量的新值。 一个正规变量传送给函式的是它的值,当函式改变这个变量的值时,只有这个函式才见到新值,应用的其他部分仍然见到旧值。 $myVariable = "its' value"; Myfunction(&$myVariable); // 以reference 传送参数以reference 传送参数给函式,可以使函式改变了的变量,即使在函式结束后仍然保留新值。 5.些函式可以用来在现正执行的脚本中插入函式库? 对这道题目不同的理解会有不同的答案,我的第一个想法是插入PHP 函式库不外乎include()、include_once()、require()、require_once(),但细心再想,“函式库”也应该包括com 物件和.net 函式库,所以我们的答案也要分别包括com_load 和dotnet_load,下次有人提起“函式库”的时候,别忘记这两个函式。

腾讯PHP工程师笔试题

1.请对POSIX风格和兼容Perl风格两种正则表达式的主要函数进行类比说明ereg preg_match ereg_replace preg_replace 2.请说明在php.ini中safe_mode开启之后对于PHP系统函数的影响3.PHP5中魔术方法函数有哪几个,请举例说明各自的用法 __sleep __wakeup __toString __set_state __construct, __destruct __call, __get, __set, __isset, __unset __clone __autoload

4.请写出让,并说明如何在命令行下运行PHP脚本(写出两种方式)同时向PHP脚本传递参数?5.PHP的垃圾收集机制是怎样的 6.使对象可以像数组一样进行foreach循环,要求属性必须是私有。 (Iterator模式的PHP5实现,写一类实现Iterator接口) 7.请写一段PHP代码,确保多个进程同时写入同一个文件成功 8.用PHP实现一个双向队列 9.使用正则表达式提取一段标识语言(html或xml)代码段中指定标签的指定属性值(需考虑属性值对不规则的情况,如大小写不敏感,属性名值与等号间有空格等)。此处假设需提取test标签的attr属性值,请自行构建包含该标签的串

10.请使用socket相关函数(非curl)实现如下功能:构造一个post请求,发送到指定http server 的指定端口的指定请求路径(如https://www.doczj.com/doc/969591589.html,:8080/test)。请求中包含以下变量: 用户名(username):温柔一刀 密码(pwd):&123=321&321=123& 个人简介(intro):Hello world! 且该http server需要以下cookie来进行简单的用户动作跟踪: cur_query:you&me last_tm:...(上次请求的unix时间戳,定为当前请求时间前10分钟) cur_tm:...(当前请求的unix时间戳) 设置超时为10秒,发出请求后,将http server的响应内容输出。 1.Function encode($data, $sep = ‘&’){ 2.while (list($k,$v) = each($data)) { 3.$encoded .= ($encoded ? "$sep" : ""); 4.$encoded .= rawurlencode($k)."=".rawurlencode($v); 5.} 6.Return $encoded; 7.} 8. 9.Function post($url, $post, $cookie){

php面试题及答案

php面试题及答案,经典php笔试题与答案 问题 1.考虑如下脚本。标记处应该添加什么代码才能让脚本输出字符串 php? $alpha = 'abcdefghijklmnopqrstuvwxyz'; $letters = array(15, 7, 15); foreach($letters as $val) {/* 这里应该加入什么 */ } ?> A.echo chr($val); B.echo asc($val); C.echo substr($alpha, $val, 2); D.echo $alpha{$val}; E.echo $alpha{$val+1} 2.以下哪一项不能把字符串$s1 和$s2 组成一个字符串? A.$s1 + $s2 B.”{$s1}{$s2}” C.$s1.$s2 D.implode(”, array($s1,$s2)) E.以上都可以 3.变量 $email 的值是字符串 user@https://www.doczj.com/doc/969591589.html, ,以下哪项能把字符串转化成 https://www.doczj.com/doc/969591589.html,? A.substr($email, strpos($email, “@”));

B.strstr($email, “@”); C.strchr($email, “@”); D.substr($email, strpos($email, “@”)+1); E.strrpos($email, “@”); 4.给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每 个独立的值放入一个新创建的数组? A.strstr() B.不可能只调用一次就完成 C.extract() D.explode() E.strtok() 5.要比较两个字符串,以下那种方法最万能? A.用 strpos 函数 B.用==操作符 C.用 strcasecmp() D.用 strcmp() 6.以下哪个 PCRE 正则表达式能匹配字符串 php|architect? A..* B.…|……… C.\d{3}\|\d{8} D.[az]{3}\|[az]{9} E.[a-z][a-z][a-z]\|\w{9} 7.以下哪些函数能用来验证字符串的完整性?(三选)

php程序员面试题(b卷_附答案).docx

1.以下哪一句不会把John新增到 users 阵列? $users[] = 'john'; 成功把 John 新增到阵列users。 array_add($users,’ john ’ ); 函式 array_add() 无定义。 array_push($users,‘ john ’ ); 成功把 John 新增到阵列users。 $users ||= 'john'; 语法错误。 2.sort()、 assort()、和 ksort() 有什么分别?它们分别在什么情况下使用? sort() 根据阵列中元素的值,以英文字母顺序排序,索引键会由0 到 n-1重新编号。主要是当阵 列索引键的值无关疼痒时用来把阵列排序。 assort() PHP 没有 assort()函式,所以可能是asort() 的笔误。 asort() 与 sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特 别适合替联想阵列排序。 ksort() 根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。 3.以下的代码会产生什么?为什么? $num =10; function multiply (){ $num =$num * 10; } multiply (); echo $num; 由于函式 multiply() 没有指定 $num 为全域变量(例如 global $num 或者 $_GLOBALS['num'] ),所以 $num 的值是 10。 4. reference 跟一个正规的变量有什么分别?如何pass by reference?在什么情况下我们需 要这样做? Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用 都见到这个变量的新值。 一个正规变量传送给函式的是它的值,当函式改变这个变量的值时,只有这个函式才见到新值, 应用的其他部分仍然见到旧值。 $myVariable = "its' value"; Myfunction(&$myVariable); // 以 reference 传送参数以 reference 传送参数给函式,可以使函式改 变了的变量,即使在函式结束后仍然保留新值。 5.些函式可以用来在现正执行的脚本中插入函式库? 对这道题目不同的理解会有不同的答案,我的第一个想法是插入PHP 函式库不外乎include() 、include_once() 、require() 、require_once() ,但细心再想,“函式库”也应该包括com 物件和.net 函式库,所以我们的答案也要分别包括com_load 和 dotnet_load ,下次有人提 起“函式库”的时候,别忘记这两个函式。

PHP面试题答案重点题目

PHP面试题答案重点题目 很多同学在面试之前,都会去网上搜索面试题目,为面试做好充足的准备,但是网上的题目和答案太多,也很混乱,想具体了解和熟悉也比较困难。所以,千锋小编整理了一些当下面试出现率较高的题目给大家。希望对大家有帮助。 1.请说明 HTML 文档中 DTD 的意义和作用(酷讯) DTD,文档类型定义,是一种保证 html 文档格式正确的有效方法,在解析网页时,浏览器将使用 DTD 来检查页面的有效性(是否符合规范,元素和标签使用是否正确)并且采取相应的措施。同时它还会影响浏览器的渲染模式(工作模式)。 2.准确指出以下代码的显示结果(酷讯)

结果如图所示:

3.指出以下代码的显示结果(酷讯)

a d
b
c
显示效果如图: 4.如何产生带有数字列表符号的列表?()

2010 腾讯php程序员面试题目

2010 腾讯php程序员面试题目 说在前面: 1、以下题目,除了编程任务外其他都需要写在给你提供的草纸上。纸张是珍贵的地球资源,请节约使用。编程任务在有相应的环境时,会要求上机书写,实在没有条件,就只能写在草纸上了。 2、时间: 基础任务+进阶任务+设计任务=90分钟 编程任务=60分钟 基础任务: 1、请列举你能想到的UNIX信号,并说明信号用途。 2、请列举、你能想到的所有的字符串查找算法,并加注释简单说明。 3、有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。 4、写出、你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面) 基础任务-选作(会得到额外分数): 1、画几个你最熟悉的SERVER端模型出来(格式不重要,尽量将图画清楚,说明思路即可) 进阶任务: 1、PHP的垃圾收集机制是怎样的? 说明: 1)如果,你熟悉PHP源码,那么请从源码入手,回答些问题,会获得额外加分 2)如果,你不熟悉PHP源码,那么尽你所能,多写点东西,包括利用自己的编程直觉得到的信息,都可以。 3)对,则有分,错误不扣,不写无分。 2、请写出HTTP头,并符合以下要求: 1)这是一个post请求 2)目标:https://www.doczj.com/doc/969591589.html,:8080/test 3)POST变量: username: test pwd: test2 intro: Hello world! 4)包含以下COOKIE信息: cur_query: you&me 说明: 1)如果,你记不得某个HTTP协议中的指令字了,那么,无奈这举是用“汉字”代替。 2)如果,你能记住更多的HTTP协议指令字,那么多写几句,总是没坏处,对吧? 3)最关键的,只需要画出正确的“轮廓”(还记得httpwatch等工具打印出来的头部吗?那就是“轮廓”的含义),也会有分数,但如果,连“轮廓”都写错了,那么就很遗憾了。

php面试题及答案,经典php笔试题与答案

问题 1.选择合适的答案填入空白处 PHP 是一种______脚本语言,基于______引擎。PHP 最常被用来开发动态的 ______内 容,此外,它同样还可被用来生成______(以及其他)文档。 A.动态,PHP,数据库,HTML B.嵌入式,Zend,HTML,XML C.基于 Perl 的,PHP,Web,静态 D.嵌入式,Zend,Docbook 文档,MySQL E.基于 Zend 的,PHP,图像,HTML 1.唯一有意义的答案是 B。PHP 是一种基于 Zend 引擎的脚本语言,它通常被嵌入在 HTML 代码中。它主要被用来开发 HTML 文档,但是也可以用它来开发其他类型的文档,比 如 XML。 2.以下哪种标签不是 PHP 起始/结束符? A.<% %> B.// C. D./* */ E.

2. PHP 编程中,人们不太使用<% %>和两个标签,但它们确实是合法的 PHP 界定符。 标签是非法的,因此正确的答案是 D。记住,根据 php.ini 文件中的配置不同,这 当中的某些标签无法在特定的情况下使用。 3.以下代码哪个不符合 PHP 语法? A.$_10 B.${“MyVar”} C.&$something D.$10_somethings E.$aVaR 3. PHP 变量以一个美元符号为开头,后面跟上任意数量的数字、字母和下划线。${“MyVar”} 是一个合法的变量名,它使用的是较松散的命名约定。&$something 是对$something 的 引用。然而,变量名不能以数字为开头,$10_somethings 是非法的,因此答案是 D。 4.运行以下代码将显示什么? define(myvalue, "10"); $myarray[10] = "Dog"; $myarray[] = "Human"; $myarray['myvalue'] = "Cat"; $myarray["Dog"] = "Cat";

腾讯php面试答案

设计任务: 1、最近总有人骚扰我们的投票模块,需要你来设计一个投票限制的东东 要求如下: 1)要求每个QQ号码(假设此QQ号码在UNIT32 内可以表示)10分钟这内只能投5票。2)我们的用户很踊跃,平均每天要有2000万人左右通过此程序投票。 说明: 1)无需写代码,只需要图跟文字即可。 2)对于关键逻辑,请用图加代码表示出来,这也是对你文字表达能力的一个考验。 3)对你能想到的所有的边界条件列出来,这是对你逻辑思维全面与敏捷性的考验。 4)存储部分,尽你所能吧。如果,你需要一个自己设计的存储层,那么把这个存储层的实现,用文字+图片方式描述清楚,要是设计合理,你会获得华丽的奖分. 解答: 核心问题:如何统计10分钟之内投了5票? 首先:以秒为键切分数据集,10*60=600个时间戳桶,并添加一个Forbid令牌桶 然后:每个数据集内,以qq号码为键,vote次数为值 OK,已经成功转换为key-value方式存储,2000万的日投票,除以86400秒,并发231.48rps,使用memcache能够轻松胜任。 数据集ID:201006072134 【QQ号码:Vote次数】 201006072134 | 201006072135 | 201006072136 【12345:3】| 【12345:3】| 【12345:3】

【88888:2】| 【88888:3】| 【88888:3】 把下一秒钟不能投票的同学生成一个令牌桶Forbid。―――――- Forbid令牌桶 【12345】 【55555】 【66666】 【77777】 【99999】 ―――――- if(in_array($uid,$not_vote)) { $flag = ‘不能投票’; } else { $flag = ‘可以投票’; //insert 新时间戳桶 } 定时任务 1、unset(10分钟前的时间戳桶)

最全最详细的PHP面试题(带有答案)

1 php面试题及答案(原创)收藏 基础题: 1.表单中get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 2.session与cookie的区别? 答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。 两者都可通过时间来设置时间长短 3.数据库中的事务是什么? 答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成, 事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。 简述题: 1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)**************** 答:echo date('Y-m-d H:i:s', strtotime('-1 days')); 2、echo(),print(),print_r()的区别(3分) 答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print()只能打印出简单类型变量的值(如int,string) print_r()可以打印出复杂类型变量的值(如数组,对象) echo 输出一个或者多个字符串 3、能够使HTML和PHP分离开使用的模板(1分) 答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate 5、使用哪些工具进行版本控制?(1分) 答:cvs,svn,vss; 6、如何实现字符串翻转?(3分) 答:echo strrev($a); 7、优化MYSQL数据库的方法。(4分,多写多得) 答: 1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM 2、使用连接(JOIN)来代替子查询: 3、使用联合(UNION)来代替手动创建的临时表 4、事务处理:

php笔试题及答案

T1 一、填空题 1.PHP是用什么语言编写的? :脚本语言 2. LAMP的全称是? :LINUX 、APACHE、MYSQL、PHP 3. PHP的三种注释方式? :#、//、/**/ 4. PHP使用什么符号定义变量? :$ 二、简答题 1. 请列出PHP的8种数据类型。? :整型、浮点型、字符串、数组、逻辑、对象、NULL、资源型 :资源RESOURCE是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。 2. 写出如下程序的输出结果? :AAAAAA 3. 4.$I=2,编程实现判断$I是否为整型,是则输出$I,不是则输出“非整型变量”?

php面试题_腾讯

【公司面试题之:腾讯PHP工程师笔试题】 1.请对POSIX风格和兼容Perl风格两种正则表达式的主要函数进行类比说明 ereg preg_match ereg_replace preg_replace 2.请说明在php.ini中safe_mode开启之后对于PHP系统函数的影响 3.PHP5中魔术方法函数有哪几个,请举例说明各自的用法 __sleep __wakeup __toString __set_state __construct, __destruct __call, __get, __set, __isset, __unset __sleep, __wakeup, __toString, __set_state, __clone __autoload 4.请写出让,并说明如何在命令行下运行PHP脚本(写出两种方式)同时向PHP脚本传递参数? 5.PHP的垃圾收集机制是怎样的 6.使对象可以像数组一样进行foreach循环,要求属性必须是私有。 (Iterator模式的PHP5实现,写一类实现Iterator接口)

7.请写一段PHP代码,确保多个进程同时写入同一个文件成功 8.用PHP实现一个双向队列 9.使用正则表达式提取一段标识语言(html或xml)代码段中指定标签的指定属性值(需考虑属性值对不规则的情况,如大小写不敏感,属性名值与等号间有空格等)。此处假设需提取test标签的attr属性值,请自行构建包含该标签的串 10.请使用socket相关函数(非curl)实现如下功能:构造一个post请求,发送到指定http server的指定端口的指定请求路径(如https://www.doczj.com/doc/969591589.html,:8080/test)。请求中包含以下变量: 用户名(username):温柔一刀 密码(pwd):&123=321&321=123& 个人简介(intro):Hello world! 且该http server需要以下cookie来进行简单的用户动作跟踪: cur_query:you&me last_tm:...(上次请求的unix时间戳,定为当前请求时间前10分钟) cur_tm:...(当前请求的unix时间戳) 设置超时为10秒,发出请求后,将http server的响应内容输出。 复制内容到剪贴板 Function encode($data, $sep = ‘&’){

10个提问频率最高的PHP面试题

10个提问频率最高的PHP面试题10个提问频率最高的PHP面试题汇总 问题:请用最简单的语言告诉我PHP是什么? 回答:PHP全称:HypertextPreprocessor,是一种用来开发动态网站的服务器脚本语言。 问题:什么是MVC? 回答:MVC由Model(模型),View(视图)和Controller(控制器)组成,PHPMVC可以更高效地管理好3个不同层的PHP代码。 Model:数据信息存取层。 View:view层负责将应用的数据以特定的方式展现在界面上。 Controller:通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。 问题:在页面中引用CSS有几种方式? 回答:在页面中使用CSS有3中方式: 引用外部CSS文件 内部定义Style样式 内联样式 问题:PHP支持多继承吗? 回答:不可以。PHP类只能继承一个父类,并用关键字“extended”标识。 问题:请问PHP中echo和print有什么区别?

这两个看起来很相似,因为它们都是将一些值打印在屏幕上。但是echo和print的本质区别在于:echo用来输出字符串,显示多 个值的时候可以用逗号隔开。只支持基本类型,print不仅可以打 印字符串值,而且可以打印函数的`返回值。 问题:请问GET和POST方法有什么区别? 回答:我们再网页上填写的表单信息都可以通过这两个方法将数据传递到服务器上,当我们使用GET方法是,所有的信息都会出现 在URL地址中,并且使用GET方法最多只能传递1024个字符,所以 如果在传输量小或者安全性不那么重要的情况下可以使用GET方法。说到POST方法,最多可以传输2MB字节的数据,而且可以根据需要 调节。 问题:PHP中获取图像尺寸大小的方法是什么? 回答:getimagesize()获取图片的尺寸 Imagesx()获取图片的宽度 Imagesy()获取图片的高度 问题:PHP中的PEAR是什么? 回答:PEAR也就是为PHP扩展与应用库(PHPExtensionandApplicationRepository),它是一个PHP扩展 及应用的一个代码仓库。 问题:如何用PHP和MySQL上传视频? 回答:我们可以在数据库中存放视频的地址,而不需要将真正的视频数据存在数据库中。可以将视频数据存放在服务器的指定文件 夹下,上传的默认大小是2MB,但是我们也可以在php.ini文件中 修改max_filesize选项来改变。 问题:PHP中的错误类型有哪些? 回答:PHP中遇到的错误类型大致有3类。

php程序员面试题(c卷 附答案)

PHP经典面试题(连载4) 1 请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用? 答:传值只是把某一个变量的值传给了另一个变量,而引用则说明两者指向了同一个地方。 2 在PHP中error_reporting这个函数有什么作用? 答: The error_reporting() function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script. 3 请用正则表达式(Regular Expression)写一个函数验证电子邮件的格式是否正确。 答:

} } else { ?> EMAIL检测

腾讯面试题(有答案)

1. 1-20的两个数把和告诉A,积告诉B,A说不知道是多少, B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少? 答案:2和3 2 爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多少? 1-12*11*10*9/12*12*12*12 = 1-55/96 = 41/96 3, 计算a^b << 2 答案: 运算符优先级:括号,下标,->和.(成员)最高; 单目的比双目的高; 算术双目的比其他双目的高; 位运算高于关系运算; 关系运算高于按位运算(与,或,异或);

按位运算高于逻辑运算; 三目的只有一个条件运算,低于逻辑运算; 赋值运算仅比, (顺序运算)高。 在此题中,位左移"<<" 优先级高于按位异或"^",所以b先左移两位(相当于乘以4), 再与a异或。 例如:当 a = 6; b = 4 时;则a^b<<2 = 22 4 如何输出源文件的标题和目前执行行的行数? 答案:printf("The file name: %d\n", __FILE__); printf("The current line No:%d\n", __LINE__); ANSI C标准预定义宏: __LINE__

__FILE__ __DATE__ __TIME__ __STDC__ 当要求程序严格遵循ANSI C标准时该标识符被赋值为1 __cplusplus__ 当编写C++程序时该标识符被定义 5 a[3][4]哪个不能表示a[1][1]: *(&a[0][0]+5) *(*(a+1)+1) *(&a[1]+1) *(&a[0][0]+4) 答案: *(&a[1]+1) a是数组的首地址,a[1]就表示a[1][0]地址了,不用再取地址了。 6 fun((exp1,exp2),(exp3,exp4,exp5))有几个实参? 答案:两个。

PHP架构师面试题目和答案

一、MySQL相关知识 1、请列举mysql优化方式 选取最适用的字段属性、事务、锁定表、使用外键、使用索引、优化的查询语句 使用连接(JOIN)来代替子查询(Sub-Queries) 使用联合(UNION)来代替手动创建的临时表 2、请列举分库分表的常用方法 有一个1000多万条记录的用户表members,查询起来非常之慢 "; echo "INSERT INTO members{$i} SELECT * FROM members WHERE mid%100={$i}
"; } ?> 3、 Mysql+如何做双机热备和负载均衡 1.主服务器授权 2.数据复制 3.配置主服务器 4.重启master 5.配置slave 6.重启slave 7.查看master的状态与设置的是否一致 8.查看slave 4、数据表类型有哪些 MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等 MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。 5、防sql注入的方法? mysql_escape_string(strip_tags($arr["$val"]));

6、mysql把一个大表拆分多个表后,如何解决跨表查询效率问题 [php]view plaincopy 1./** 2.* 函数名称:post_check() 3.* 函数作用:对提交的编辑内容进行处理 4.* 参数:$post: 要提交的内容 5.* 返回值:$post: 返回过滤后的内容 6.*/ 7.function post_check($post){ 8.if(!get_magic_quotes_gpc()){// 判断magic_quotes_gpc是否为打 开 9.$post = addslashes($post);// 进行magic_quotes_gpc没有打开的 情况对提交数据的过滤 10.} 11.$post = str_replace("_","\_", $post);// 把'_'过滤掉 12.$post = str_replace("%","\%", $post);// 把'%'过滤掉 13.$post = nl2br($post);// 回车转换 14.$post = htmlspecialchars($post);// html标记转换 15.return $post; 16.} 7、索引应用 7.1什么情况下考虑索引 7.2什么情况不适合索引 7.3一个语句是否用到索引如何判断

相关主题
文本预览