PHP与Mysql练习题二 联系客服

发布时间 : 星期二 文章PHP与Mysql练习题二更新完毕开始阅读85748ceff5335a8102d220e1

2.setcookie()方法: 跟设置cookie的方法一样,不过此时将cookie的值设置为空,有效时间为0或小于当前时间戳。

62. 如何设置一个cookie的名字为username,值为jack,并且让此cookie一周后失效? 一个浏览器最多可以产生多少个cookie,每个cookie文件最大不能超过多少? setcookie(‘username’,’jack’,time()+7*24*3600); 最多可以产生20个cookie,每个最多不超过4K 63. 设置或读取session之前,需要做什么? 可以直接在php.ini中开启session.auto_start = 1或者在页面头部用session_start(); 开启session,session_start()前面不能有任何输出,包括空行。 64. 在实际开发中,session在哪些场合使用? session用来存储用户登录信息和用在跨页面传值。 1)常用在用户登录成功后,将用户登录信息赋值给session; 2)用在验证码图片生成,当随机码生成后赋值给session。 65. 注销session会话的形式有几种? unset() $_SESSION=array(); session_destroy();

66. 什么是OOP?什么是类和对象?什么是类属性? OOP(object oriented programming),即面向对象编程,其中两个最重要的概念就是类和对象。 世间万物都具有自身的属性和方法,通过这些属性和方法可以区分出不同的物质。 属性和方法的集合就形成了类,类是面向对象编程的核心和基础, 通过类就将零散的用于实现某个功能的代码有效地管理起来了。 类只是具备了某些功能和属性的抽象模型,而实际应用中需要一个一个实体,也就是需要对类进行实例化, 类在实例化之后就是对象。★类是对象的抽象概念,对象是类的实例化。 OOP具有三大特点:1. 封装性(又叫做隐藏性);2. 继承性; 3. 多态性 OOP的优点:1、代码重用性高(省代码) 2、使程序的可维护性高(扩展性) 3、灵活性

67. 常用的属性的访问修饰符有哪些?分别代表什么含义? private,protected,public 类外:public ,var 子类中:public,protected ,var 本类中:private,protected,public ,var 如果不使用这三个关键词,也可以使用var关键字。但是var不可以跟权限修饰词一起使用。var定义的变量,子类中可以访问到,类外也可以访问到,相当于public 类前面:只能加final,abstract 属性前面:必须有访问修饰符(private,protected,public,var) 方法前面:static,final,private,protected,public ,abstract

68. $this和self、parent这三个关键词分别代表什么?在哪些场合下使用? $this 当前对象 self 当前类 parent 当前类的父类

$this在当前类中使用,使用->调用属性和方法。 self也在当前类中使用,不过需要使用::调用。 parent在类中使用。

69.类中如何定义常量、如何类中调用常量、如何在类外调用常量。 类中的常量也就是成员常量,常量就是不会改变的量,是一个恒值。 定义常量使用关键字const. 例如:const PI = 3.1415326; 无论是类内还是类外,常量的访问和变量是不一样的,常量不需要实例化对象, 访问常量的格式都是类名加作用域操作符号(双冒号)来调用。 即:类名 :: 类常量名;

70. 作用域操作符::如何使用?都在哪些场合下使用? 调用类常量 调用静态方法

71. 什么是魔术方法?常用的魔术方法有哪几个? 以__开头的系统自定义的方法。 __construct() __destruct() __autoload() __call() __tostring() 72. 什么是构造方法和析构方法? 构造方法就是在实例化一个对象的同时自动执行的成员方法,作用就是初始化对象。 php5之前,一个跟类名完全相同的方法是构造方法,php5之后魔术方法__construct()就是构造方法。 如果类中没有定义构造方法,那么php会自动生成一个,这个自动生成的构造方法没有任何参数, 没有任何操作。 构造方法的格式如下: function __construct(){} 或者:function 类名(){} 构造方法可以没有参数,也可以有多个参数。 析构方法的作用和构造方法正好相反,是对象被销毁时被自动调用的,作用是释放内存。 析构方法的定义方法为:__destruct(); 因为php具有垃圾回收机制,能自动清除不再使用的对象,释放内存,一般情况下可以不手动创建析构方法。

74. 什么是抽象类和接口?抽象类和接口有什么不同和相似的地方? 抽象类是一种不能被实例化的类,只能作为其他类的父类来使用。 抽象类是通过关键字 abstract 来声明的。 抽象类与普通类相似,都包含成员变量和成员方法,两者的区别在于,抽象类中至少要包含一个抽象方法, 抽象方法没有方法体,该方法天生就是要被子类重写的。 抽象方法的格式为:abstract function abstractMethod(); 因为php中只支持单继承,如果想实现多重继承,就要使用接口。也就是说子类可以实现多个接口。

接口类是通过interface关键字来声明的,接口类中的成员变量和方法都是public的,方法可以不写关键字public, 接口中的方法也是没有方法体。接口中的方法也天生就是要被子类实现的。 抽象类和接口实现的功能十分相似,最大的不同是接口能实现多继承。在应用中选择抽象类还是接口要看具体实现。 子类继承抽象类使用extends,子类实现接口使用implements。 抽象类至少有一个抽象方法吗?????? 答:如果一个类声明成抽象类,里面可以没有抽象方法 如果一个类中有抽象方法,这个类必须是抽象类 75. __call的参数有几个,类型是什么,意义是什么? 魔术方法__call()的作用是当程序调用一个不存在或不可见的成员方法时,php会先调用__call()方法, 将那个不存在的方法的方法名和参数都存储下来。 __call()包含两个参数, 第一个参数是那个不存在的方法的方法名,是个字符串类型; 第二个参数是那个不存在的方法的所有参数,是个数组类型。 本人认为__call()方法的意义更多在于调试,可以定位到错误。同时可以捕捉异常,如果某个方法不存在, 则执行其它可替代方法。

82. final关键字能定义类中的成员属性吗? 答:不能,类的成员属性只能有public ,private , protected ,var 来定义 83. final关键字定义的类能够被继承吗? 答:final定义的类不能被继承

84. 说说static关键字的使用场合?static能用在class前吗?

static可以跟public,protected,private一起使用吗?构造方法可以是static的吗? 答: static可以在属性和方法前面使用,调用static属性或者方法时,只要将类载入就可用,不用实例化 static不能用在class的前面 static可以跟public,protected,private一起使用,在方法的前面; ▲构造方法不能是static

85. 接口可以实例化吗?抽象类能实例化吗? 答:接口和抽象类都不能被实例化

86. class前面能加访问修饰符吗?如果能加,只能是哪几个访问修饰符?可以是权限访问修饰符public,protected,private吗? 答:class前面可以加final,static; ★class前面不能加public,protected,private

87. 类中属性前可以不加访问修饰符吗?成员变量前的修饰符只能是public,protected,private吗?还可以是哪几个? 答:类中的属性必须加修饰符,除了那3个以外,还可以加var

88. 如果echo一个数组,页面输出什么?echo一个对象呢?print一个数组或者对象呢? 答:页面只能输出“Array”;echo一个对象会出现“Catchable fatal error: Object of class t2 could not be converted to string in G:\\php2\\t2.php on line 33” print一个数组时也只是输出“Array”,print一个对象出现“Catchable fatal error: Object of class t2 could not be converted to string in G:\\php2\\t2.php ” ▲print和echo是一样的

89. __tostring()魔术方法在什么时候被自动执行? __tostring()魔术方法必须要return返回值吗? 当echo或者print一个对象时,就是自动触发。而且__tostring()必须要返回一个值 90. 什么是抽象方法? 答:在方法前面有abstract,而且方法没有方法体,连“{ }”也不能有

91. 如果一个类中有一个方法是抽象方法,而这个类没有定义成抽象类,会报错吗? 答:会,\error: Class t2 contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (t2::ee) in\

92. 如果一个类是抽象类,而类中的方法都是非抽象的方法,会报错吗? 答:不会报错,如果一个类是抽象类,其中可以没有抽象方法,但是一个类中有个方法是抽象方法,那么这个类一定是一个抽象类 94. final 关键字的应用应注意的问题? 使用final关键字定义的类,禁止继承。 使用final关键字定义的方法,禁止重写。

95. 如果一个类既要继承一个父类,又要实现多个接口,该如何写? 书写格式例如: class MaleHuman extends Human implements Animal,Life { ... } 97. PHP提供了2套正则表达式函数库,分别是哪两套?【 (1) PCRE Perl兼容正则表达式 preg_ 为前缀 (2) POSIX 便携式的操作系统接口 ereg_ 为前缀 98. 正则表达式的组成?

由原子(普通字符,如英文字符)、 元字符(有特殊功用的字符) 模式修正字符

一个正则表达式中,至少包含一个原子 99. 不常用魔术方法的触发时机? __isset() __unset()的触发时机

__sleep()、 __wakeup() 在对对象进行串行化的时候调用 如果序列化对象的时候,不写__sleep()方法,则所有的成员属性都会被序列化,而定义了__sleep()方法,则只序列化指定数组中的变量。 因此,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。 使用 __sleep 的目的是关闭对象可能具有的任何数据库连接,提交等待中的数据或进行类似的清除任务。此外,如果有非常大的对象而并不需要完全储存下来时此函数也很有用。 使用 __wakeup 的目的是重建在序列化中可能丢失的任何数据库连接以及处理其它重新初始化的任务。

100. OOP的三大特性是什么? 1. 封装性: 也称为信息隐藏,就是将一个类的使用和实现分开,只保留部分接口和方法与外部联系,或者说只公开了一些供开发人员使用的方法。 于是开发人员只需要关注这个类如何使用,而不用去关心其具体的实现过程,这样就能实现MVC分工合作,也能有效避免程序间相互依赖, 实现代码模块间松藕合。