php 理论知识点

来源:互联网 发布:zbrush4r7注册机 mac 编辑:程序博客网 时间:2024/05/29 11:05

5.===是什么运算?

              是php比较运算符中的一种,表示恒等,说明两个变量不只是数值上相等,而且两者的数据类型也相等。

              如果$a !== $b,那么说明两个变量要么数值不等,要么就是数据类型不相同。

7.网页静态化要用到哪类函数?

              使用ob系列函数。这个问题需要到php高级才学。

 

 

       8.PHP有几组函数来处理正则表达式?

              preg系列函数可以处理。具体有以下几个:

             

              stringpreg_quote ( string str [, string delimiter] )

                     转义正则表达式字符 正则表达式的特殊字符包括:. \\ + * ? [ ^ ] $ ( ) { } = ! < > | :。

              preg_replace-- 执行正则表达式的搜索和替换

              mixedpreg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )

              preg_replace_callback-- 用回调函数执行正则表达式的搜索和替换

              mixedpreg_replace_callback ( mixed pattern, callback callback, mixed subject [, intlimit] )

              preg_split-- 用正则表达式分割字符串

              arraypreg_split ( string pattern, string subject [, int limit [, int flags]] )

 

 

       9.试举正则表达式对字符串最常用的3种操作?

              1.利用正则表达式,实现对一个字符串的切割,切割后返回一个数组。如split()。

              2.利用正则可以实现对一个字符串中符合的内容批量替换。如果替换为空则达到了过滤的作用。如preg_replace()。

              3.利用正则判断一个字符串中是否含有符合的子字符串。如preg_match()。

 

 

       10.字符串怎么转成整数,有几种方法?怎么实现?

              强制类型转换: (整型)字符串变量名;

              直接转换:settype(字符串变量,整型);

              intval(字符串变量);

 

 

       11.php怎么定义函数?

              使用关键字function加函数名,参数和函数体来定义函数。格式为:

              function函数名(参数){函数体};

 

 

       12.函数内怎么使用局部变量和全局变量?

              局部变量是函数内部定义的变量,其作用域是所在的函数。如果函数外还有一个跟局部变量名字一样的变量,

              程序会认为它们两个是完全不同的两个变量。当退出函数的时候,其中的局部变量就同时被清除。

 

              全局变量是定义在所有函数以外的变量,其作用域是整个php文件,但是在用户自定义的函数内部是无法使用的。

              如果一定要在用户自定义的函数内部使用全局变量,那么就需要使用global关键字声明。

              也就是说如果在函数内的变量前加上golbal来修饰,那么函数内部就可以访问到这个全局变量,

              不仅可以利用这个全局变量进行运算而且可以对这个全局变量进行重新赋值。

 

 

       13.字符串和数组怎么取长度?

              字符串:strlen();

              count()-- 计算数组中的元素个数。

              可以使用count(数组名)或者count(数组名,1),如果有第二个参数,并且是数字1,则表示递归统计数组元素的个数。

              如果第二个参数是数字0,则等同于只有一个参数的count()函数。

              sizeof()-- count() 的别名

 

 

       14.页面字符出现乱码,怎么解决?

              1.首先考虑当前文件是不是设置了字符集。查看是不是meta标签中写了charset,如果是php页面还可以看看是不是

              在header()函数中指定了charset;

              2.如果设置了字符集(也就是charset),那么判断当前文件保存的编码格式是否跟页面设置的字符集保持一致,

              两者必须保持统一;

              3.如果涉及到从数据库提取数据,那么判断数据库查询时的字符集是否跟当前页面设置的字符集一致,两者必须统一。

 

 

       15.php访问数据库有哪几步?

              1.连接数据库服务器:

                     mysql_connect('数据库服务器的主机名或ip','数据库服务器的用户名','数据库服务器的密码');

              2.选择数据库:          

                     mysql_select_db(数据库名);

              3.设置从数据库提取数据的字符集:

                     mysql_query("setnames utf8");

              4.执行sql语句:

                     mysql_query(sql语句);

              5.关闭结果集,释放资源:

                     mysql_free_result($result);

              6.关闭与数据库服务器的连接:

                     mysql_close($link);

 

 

       16.文件上传应该注意哪些细节?

              1.首现要在php.ini中开启文件上传;

              2.在php.ini中有一个允许上传的最大值,默认是2MB。必要的时候可以更改;

              3.上传表单一定要记住在form标签中写上enctype="multipart/form-data";

              4.要注意上传文件的大小、文件类型是否符合要求,上传后存放的路径是否存在。

 

 

       17.怎么把文件保存到指定目录?怎么避免上传文件重名问题?

              可以通过上传的文件名获取到文件后缀,然后使用时间戳+文件后缀的方式为文件重新命名,这样就避免了重名。

              可以自己设置上传文件的保存目录,与文件名拼凑形成一个文件路径,使用move_uploaded_file(),就可以完成

              将文件保存到指定目录。

 

 

       18.session和cookie有什么区别?

              cookie是保存在客户端机器的,对于未设置过期时间的cookie,cookie值会保存在机器的内存中,只要关闭浏览器则

              cookie自动消失。如果设置了cookie的过期时间,那么浏览器会把cookie以文本文件的形式保存到硬盘中,

              当再次打开浏览器时cookie值依然有效。

             

              session是把用户需要存储的信息保存在服务器端。每个用户的session信息就像是键值对一样存储在服务器端,

              其中的键就是sessionid,而值就是用户需要存储信息。服务器就是通过sessionid来区分存储的session信息是

              哪个用户的。

             

              两者最大的区别就是session存储在服务器端,而cookie是在客户端。session安全性更高,而cookie安全性弱。

 

 

       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。

 

 

       20.cookie有什么用?怎么使用?

              1.记录用户访问的部分信息

              2.在页面间传递变量

              3.将所查看的internet页存储在cookies临时文件夹中,可以提高以后的浏览速度。

 

              创建cookie:

                     setcookie(stringcookiename , string value , int expire);

              读取cookie:

                     通过超级全局数组$_COOKIE来读取浏览器端的cookie的值。

              删除cookie:有两种方法

                     1.手工删除方法:

                            右击浏览器属性,可以看到删除cookies,执行操作即可将所有cookie文件删除。

                     2.setcookie()方法:

                            跟设置cookie的方法一样,不过此时讲cookie的值设置为空,有效时间为0或小于当前时间戳。

 

 

       21.怎么定义常量?

              define('变量名','值');

              还可以使用constant()函数来定义一个常量。例如constant(常量名).

 

 

       22.break和continue的区别?

              break可以终止循环。

              continue没有break强大,只能终止本次循环而进入到下一次循环中。

 

 

       23.循环语句有哪几种?

              while(){};

              do{}whlie();

              for(){};

              foreach(){};

      

       24.数组怎么声明?怎么赋值?

              数组的声明方式主要有两种。

              1.通过array()函数声明数组;

                     可以通过key=>value的方式分别定义索引和值,也可以不定义数组的索引下标,只给出数组的元素值。

              2.直接为数组元素赋值,不需要调用array()函数。例如:

                     $arr[0]= 1;

                     $arr[1]= 2;

 

 

       25.说出数组涉及到的常用函数。

              array--  声明一个数组

              count-- 计算数组中的单元数目或对象中的属性个数

              foreach-- 遍历数组

              list-- 遍历数组

              explode-- 将字符串转成数组

              implode-- 将数组转成一个新字符串

              array_merge-- 合并一个或多个数组

              is_array-- 检查是否是数组       

 

              print_r-- 输出数组

              sort-- 数组排序

 

              array_keys-- 返回数组中所有的键名

              array_values-- 返回数组中所有的值

              key-- 从关联数组中取得键名

 

 

       26.数组有哪几种类型?

              数字索引数组

              关联数组

              根据数组构造还可以分一维数组、二维数组、多维数组。

 

 

       27.foreach用法。

              foreach($数组名 as $key=>$value){

                     循环体

              };

 

 

       28.说出有哪几种分支语句。

              if(){};

              if(){}else{};

              if(){}elseif(){}else{};

              swich(){case1,case2,……};

 

 

       29.什么是全局变量,自定义函数中如何使用全局变量?

              全局变量是定义在所有函数以外的变量,其作用域是整个php文件,但是在用户自定义的函数内部是无法使用的。

              如果一定要在用户自定义的函数内部使用全局变量,那么就需要使用global关键字声明。

              也就是说如果在函数内的变量前加上golbal来修饰,那么函数内部就可以访问到这个全局变量,

              不仅可以利用这个全局变量进行运算而且可以对这个全局变量进行重新赋值。

 

 

       30.字符串的常用函数?

              trim();--去除空格

              strlen();--字符串长度

              substr();--截取字符串

              str_replace();--替换字符串函数

              substr_replace()-- 对指定字符串中的部分字符串进行替换

              strstr();--检索字符串函数

              explode();--分割字符串函数

              strcasecmp();--比较字符串函数

 

 

       31.PHP数据类型有哪些?

              php支持8种原始数据类型。

              包括:

              四种标量类型(布尔型boolean,整型interger,浮点型float/double , 字符串string)

              两种复合类型(数组array , 对象object)

              两种特殊类型(资源resource,NULL)

 

 

       32.如何定义一个变量?

              使用$和变量名表示,变量名区分大小写。变量名不可以以数字或者@等特殊字符开头。

 

 

       33.怎么定义一个整数变量?

              $变量名=整数值;

 

 

       34.print与echo有什么区别?

              echo可以一次输出多个值,中间用逗号隔开。而print一次只能输出一个值。

 

 

       35.你是怎么理解正则表达式的?

       正则表达式是用于描述字符排列模式的一种语法规则。正则表达式也叫做模式表达式。

       网站开发中正则表达式最常用于表单提交信息前的客户端验证。

       比如验证用户名是否输入正确,密码输入是否符合要求,email、手机号码等信息的输入是否合法。

       在php中正则表达式主要用于字符串的分割、匹配、查找和替换操作。

      

      

 

       36.你是如何认识ajax的?

       ajax是asynchronous javascript and xml的缩写,是javascript、xml、css、DOM等多个技术的组合。

 

       Ajax的工作原理是一个页面的指定位置可以加载另一个页面所有的输出内容,这样就实现了一个静态页面也能获取到

       数据库中的返回数据信息了。所以ajax技术实现了一个静态网页在不刷新整个页面的情况下与服务器通信,

       减少了用户等待时间,同时也从而降低了网络流量,增强了客户体验的友好程度。

      

       Ajax的优点是:

       1.  减轻了服务器端负担,将一部分以前由服务器负担的工作转移到客户端执行,利用客户端闲置的资源进行处理;

       2.  在只局部刷新的情况下更新页面,增加了页面反应速度,使用户体验更友好。

       Ajax的缺点是不利于seo推广优化,因为搜索引擎无法直接访问到ajax请求的内容。

       ajax的核心技术是XMLHttpRequest,它是javascript中的一个对象。

      

      

 

       37.你如何理解smarty,smarty的运用过程中注意哪些细节?

       Smarty是基于MVC概念的一种模板引擎,它将一个页面程序分成了两部分来实现:即视图层和控制层,

       也就是说smarty技术将用户UI与php代码分离开。

       这样程序员和美工各司其职,互不干扰。

      

       smarty运用过程中要注意以下几个问题:

       1.正确配置smarty。主要要配置smarty模板文件的路径;

       2.php页面中使用assign赋值 和 display显示页面;

       3.smarty模板文件中不允许出现php代码段,所有的注释,变量,函数都要包含在定界符内。
0 0