一、基础知识:
1、$a = 'abcdef' 请取出$a的值并打印出第一个字母
echo $a{0} 或 echo substr($a,0,1)
2、$a="hello";$b=&$a;unset($b);$b="world";echo $a;//Hello
3、break和continue的区别?
break可以终止循环,continue没有break强大,只能终止本次循环而进入到下一次循环中。
4、COOKIE、SESSION的联系和区别,多台web服务器如何共享 SESSION?
使用session_start()调用session,服务器端在生成session文件的同时,生成session ID哈希值和默认值为PHPSESSID的session name,并向客户端发送变量为(默认的是) PHPSESSID(session name) ,值为一个128位的哈希值。服务器端将通过该COOKIE与客户端进行交互。
session变量的值经PHP内部系列化后保存在服务器机器上的文本文件中,和客户端的变量名默认情况下为PHPSESSID的COOKIE进行对应交互,即服务器自动发送了HTTP头:header('Set-COOKIE:session_name()=session_id();path=/');即setCOOKIE(session_name(),session_id());当从该页跳转到的新页面并调用 session_start() 后,PHP将检查与给定ID相关联的服务器端存贮的session数据,如果没找到,则新建一个数据集。
5、COOKIE有什么用?怎么使用?
1、记录用户访问的部分信息
2、 在页面间传递变量
3、 将所查看的internet页存储在COOKIEs临时文件夹中,可以提高以后的浏览速度。
创建COOKIE: setCOOKIE(string COOKIEname,string value,int expire);
读取COOKIE: 通过超级全局数组$_COOKIE来读取浏览器端的COOKIE的值;
删除COOKIE:有两种方法
1、手工删除方法: 右击浏览器属性,可以看到删除COOKIEs,执行操作即可将所有COOKIE文件删除;
2、setCOOKIE() 方法: 跟设置COOKIE的方法一样,不过此时讲COOKIE的值设置为空,有效时间为0或小于当前时间戳。
6、echo(),print(),print_r()的区别?
echo是PHP语句;而print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用),echo 输出一个或者多个字符串,print() 只能打印出简单类型变量的值(如int string) print_r() 可以打印出复杂类型变量的值(如数组,对象)。
7、Empty()函数中哪些变量的值会被认为是空值?
""、0、"0"、NULL、FALSE、array()、var $var;以及没有任何属性的对象都将被认为是空值。
8、foreach 用法
foreach($数组名 as $key=>$value) {
循环体 ;
}
9、HTTP协议中的 $_POST和 $_GET有何区别?
$_GET是通过地址栏传值,而 $_POST是通过HTTP请求主体发送;$_GET传值的大小受限,2K左右,而 $_POST理论上没有限制。$_GET传值不能上传文件类型,$_POST可以。
10、include() 和 include_once() 有什么分别?require() 又如何?
1:include()/require()与include_once()/require_once()区别在于:前者可以包含多次,而后者是先检验有没有已经包含,如果已经包含,则不再次包含。如果网站框架的设计能避免重复引用的话,推荐用include()/require(), 因为他们比include_once/ require_once() 速度稍快。 (Include 会报警告 require 会报致命错误)
2:include_once() 和 require_once() 的区别前者要引用的文件找不到,会报警告,后者则会报fatal error致命错误。
11、mysql_fetch_row() 和 mysql_fetch_array() 有什么分别?
mysql_fetch_row() 是取出mysql资源的索引数组 mysql_fetch_assoc() 取出关联数组(以表的字段为键) mysql_fetch_array() 是取出关联数组(是前两个函数内容的合并)
#e#php教程-php笔试20道基础题带答案#p#
12、OOP具有三大特点
1、封装性:也称为信息隐藏,就是将一个类的使用和实现分开,只保留部分接口和方法与外部联系,或者说只公开了一些供开发人员使用的方法。于是开发人员只需要关注这个类如何使用,而不用去关心其具体的实现过程,这样就能实现MVC分工合作,也能有效避免程序间相互依赖, 实现代码模块间松藕合。
2、继承性:就是子类自动继承其父级类中的属性和方法,并可以添加新的属性和方法或者对部分属性和方法进行重写。继承增加了代码的可重用性。PHP只支持单继承,也就是说一个子类只能有一个父类。
3、多态性:子类继承了来自父级类中的属性和方法,并对其中部分方法进行重写。于是多个子类中虽然都具有同一个方法,但是这些子类实例化的对象调用这些相同的方法后却可以获得完全不同的结果,这种技术就是多态性。多态性增强了软件的灵活性。
13、JS中网页前进和后退的代码
14、PHP中的注释的写法,要列出三种?
PHP支持3种风格的注释 1:C风格的注释 // 这是C风格的单行注释; /* 这是C风格的多行注释。*/ 2:shell风格的注释 # 这是shell风格的单行注释。
15、PHP怎么定义函数?
使用关键字function加函数名,参数和函数体来定义函数。格式为: function 函数名(参数){函数体};
16、PHP有几组函数来处理正则表达式?
preg系列函数可以处理,具体有以下几个:
string preg_quote ( string str [, string delimiter] ) 转义正则表达式字符,正则表达式的特殊字符包括:. \\ + * ? [ ^ ] $ ( ) { } = ! < > |:
preg_replace 执行正则表达式的搜索和替换 mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
preg_replace_callback用回调函数执行正则表达式的搜索和替换 mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit] ) preg_split用正则表达式分割字符串array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )。
17、PHP访问数据库有哪几步?
1、连接数据库服务器: mysql_connect('数据库服务器的主机名或ip','数据库服务器的用户名','数据库服务器的密码');
2、选择数据库: mysql_select_db(数据库名);
3、设置从数据库提取数据的字符集:mysql_query("set names utf8");
4、执行sql语句:mysql_query(sql语句);
5、关闭结果集,释放资源:mysql_free_result($result);
6、关闭与数据库服务器的连接:mysql_close($link);
18、reference(引用)跟一个正规的变量有什么分别?如何 pass by reference?在什么情况下我们需要这样做?
Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用都见到这个变量的新值。 一个正规变量传送给函式的是它的值,当函式改变这个变量的值时,只有这个函式才见到新值,应用的其他部分仍然见到旧值。 $myVariable = "its' value";Myfunction(&$myVariable);以 reference 传送参数以 reference 传送参数给函式,可以使函式改变了的变量,即使在函式结束后仍然保留新值。
19、SESSION有什么用?怎么使用?
SESSION在WEB开发中具有非常重要的份量。它可以将用户正确登录后的信息记录到服务器的内存中,当用户以此身份 访问网站的管理后台时,无需再次登录即可得到身份确认。而没有正确登录的用户则不分配SESSION空间,即便输入了 管理后台的访问地址也不能看到页面内容。通过SESSION确定了用户对页面的操作权限。
使用SESSION的步骤:
1、启动SESSION:使用session_start()函数来启动。
2、注册会话:直接给$_SESSION数组添加元素即可。
3、使用会话:判断session是否为空或者是否已经注册,如果已经存在则像普通数组使用即可。
4、删除会话:
(1)可以使用unset删除单个session;
(2)使用 $_SESSION=array() 的方式,一次注销所有的会话变量;
(3)使用session_destroy() 函数来彻底销毁session 。
以上的方法都不会彻底删除session,为什么?
20、sort()、assort()、和 ksort() 有什么分别?它们分别在什么情况下使用?
sort() 根据阵列中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。assort() PHP 没有 assort() 函式,所以可能是 asort() 的笔误。asort() 与 sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。ksort() 根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。
Tip:r 倒序 k 按照建来排序 a 保持关联数组的下标