PHP面试笔记

个人笔记

1、只要数据类型是否为空或假,empty()就输出true

isset()和is_null()一样,只能用来判断是否为NULL和未定义

2、$_SERVER[‘REMOTE_ADDR’]打印客户端IP

3、模型(model)视图(viem)控制器(controller)MVC,由模型发出要实现的功能到控制    器,控制器接收组织功能传递给视图

4、get发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通      过表单提交大量信息

5、Session:储存用户访问的全局唯一变量,存储在服务器上的

       Cookie:用来储存连续访问一个页面所使用,存储在客户端

       两者都可以设置持续时间

6、substr("Hello world",6);字符串截取

7、strlen("Shanghai");字符串长度

8、explode(" ",$str);把字符串打散为数组

9、implode(" ",$arr);把数组元素组合为字符串

10、public 表示全局,类内部外部子类都可以访问;
        private表示私有的,只有本类内部可以使用;
        protected表示受保护的,只有本类或子类或父类中可以访问;

11、Select * from `table` order by `name` DESC limit 0,10;

12、Js弹出对话框 alert()->提示对话框,prompt()->可输入对话框,confirm()->可确定     取消对话框

13、$mysql_db=mysql_connect(“local”,”root”,”pass”);

        @mysql_select_db(“DB”,$mysql_db);

        $result = mysql_query(“selsec * from `user` where `name`=’张三’”);

        While($rs=mysql_fetch_array($result)){

           Echo $rs[“tel”],$rs[“content”],$rs[“date”];

         }

        Mysql_query(“insert into `user` (name,tel,content,date) values (‘小   王’,‘138001380000’,‘高中毕业’,‘2007-05-06’)”)

        $nowdate=date(“Ymd”);

       Mysql_query(“update `user` set date = ‘”$nowdate”’ where name   ‘张三’”);

       Mysql_query(“delete from `user` where name = ‘张四’”);

       for($i=0;$i<count($array);$i++){

          Echo $array[$i].”,”;

       }

14、__construct()构造函数,__destruct()析构函数

15、创建一张表

CREATE TABLE ‘message’(

    ‘id’int(10) NOT NULL auto_increment,

    ‘title’ varchar(200) default NULL,

    ‘content’text,

    ‘category_id’ int(10) NOT NULL,

    ‘hits’ int(20),

PRIMARY KEY(‘id’);

)ENGINE = InnoDB DEFAULT CHARSET = utf-8;

16、事务是作为一个单元的一组有序的数据库操作

17、Echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)  

        Echo 输出一个或多个字符串

        Print();只能打印出简单变量的值

        Print_r();可以打印出复杂变量的值

        Var_dump();可以打印出变量的值并返回数据类型

18、PHP的模板引擎:smarty模板引擎,Dwoo,Savant

19、优化数据库的方法:

        选取最适用的字段属性和定义字段长度,尽量把字段设置为NOT NULL

        使用连接(JOIN)来代替子查询

        使用联合(UNION)来代替手动创建临时表

        优化查询语句:SELECT子句中避免使用‘*’;定义实例化模型,减少访问数据库的次数

        建立索引

        事务处理

        锁定表,优化事务处理

        使用外键,优化锁定表

20、抽象类和普通类的区别,抽象类不能直接实例化,必须先继承再实例化子类,就是    说继承抽象类的方法必须重写,而普通类继承不用重写方法

21、This和self:self是静态调用,This是非静态调用

22、ThinkPHP中的M方法和D方法都用于实例化一个模型,M方法用于高效实例化      一个基础模型类,而D方法用于实例化一个用户定义的模型类

23、ThinkPHP钩子示例:{:hooks(‘documentDetailAfter’)}

{:U()}

24、文件遍历:

Public function my_scandir($dir){
    $files = array();
    If($handle = opendir($dir)){
        While(($file = readdir($handle))!==fales){
            If($file != “..”&& $file !=”.”){
                If(is_dir($dir.”/”.$file)){
                $files[$file] = scandir($dir.”/”.$file);
                }else{
                $files[]=$file;
                }
            }
        }
        Closedir($handle);
        Return $files;
    }
}

25、子母菜单视图显示:

$sql = "SELECT * FROM `wd_nav` WHERE `is_show` = 1 AND `topid`=0  ORDER BY `order` ASC ,`addtime` DESC";

$nav = get_all($sql,$conn);

foreach($nav as $key=>$item){

$sql = "SELECT * FROM `wd_nav` WHERE `is_show` =1 AND `topid`={$item['id']} ORDER BY `order` ASC,`addtime` DESC";

$nav[$key]['son'] = get_all($sql,$conn);

}

26、//冒泡排序

function px($arr){

              for($i=0,$j=count($arr);$i<$j;$i++){

                     for($k=$j-1;$i<$k;$k--){

                            if($arr[$k]<$arr[$k-1]){

                                   list($arr[$k-1],$arr[$k])=array($arr[$k],$arr[$k-1]);

                            }

                     }

              }

              return $arr;

       }

-------------------------------------------------------------------------------

1、100为客户端应当继续发送请求

2、101服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用      不同的协议来完成这个请求

3、102由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行

4、200请求已成功,请求所希望的响应头或数据体将随此响应返回

5、201请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI     已经随Location 头信息返回

6、202服务器已接受请求,但尚未处理

7、203服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效      的确定集合,而是来自本地或者第三方的拷贝

8、204服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的      元信息

9、205服务器成功处理了请求,且没有返回任何内容

10、300被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览    器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向

11、301被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用    本响应返回的若干个 URI 之一

12、302请求的资源临时从不同的 URI响应请求。由于这样的重定向是临时的,客户      端应当继续向原有地址发送以后的请求

13、303对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET   的方式访问那个资源

14、304如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容     (自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态 码

15、305被请求的资源必须通过指定的代理才能被访问

16、400语义有误,当前请求无法被服务器理解或请求参数有误

17、401当前请求需要用户验证

18、402该状态码是为了将来可能的需求而预留的

19、403服务器已经理解请求,但是拒绝执行它

20、404请求失败,请求所希望得到的资源未被在服务器上发现

21、405请求行中指定的请求方法不能被用于请求相应的资源

22、500服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理

23、501服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并    且无法支持其对任何资源的请求

24、502作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的    响应

25、503由于临时的服务器维护或者过载,服务器当前无法处理请求

26、504作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI 标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到   响应

27、505服务器不支持,或者拒绝支持在请求中使用的 HTTP 版本

28、600源站没有返回响应头部,只返回实体内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值