热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php笔试(1)20道基础题,带答案

break可以终止循环,continue没有break强大,只能终止本次循环而进入到下一次循环中
一、基础知识:

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 保持关联数组的下标


推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
author-avatar
lucky_笨鸟_660
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有