zoukankan      html  css  js  c++  java
  • PHP基础知识总结(五) php面试题

    1、Ajax跨域

      json:数据交换格式,{"name":"wangtianle"}

           jsonp:非官方跨域数据交换协议,可以通过动态添加<script/>标签来调用服务器提供的js脚本

      jsonp例子:

      (1)前端页面 test.html

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>test</title>
    <script src="jquery-1.9.1.min.js"></script>
    <script src="ajax.js"></script>
    </head>
     
    <body>
    </body>
    </html>

           (2)test.html引用的脚本ajax.js 

    $.ajax({
        type : "post",
        url : "ajax.php",
        dataType : "jsonp",
        jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
        jsonpCallback:"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
        success : function(json){
            alert('success, json return value=' + json );
        },
        error:function(){
            alert('fail');
        }
    });

           (3)后端ajax.php:

    <?php
     
    $data = ".......";
    $callback = $_GET['callback'];
    var_dump($callback);
    
    echo $callback.'('.json_encode($data).')';
    exit;
     
    ?>

    2、PHP模板引擎:分离PHP与HTML ,有smarty组件

    3、论坛无限分类的实现原理:

       在DB的表中设计一个父字段即可

    4、GD库:PHP处理图像的扩展库

    5、mb_strlen($str); 计算字符串的长度

         mb_substr($str, $i, 10, $encoding);  获取$str中,从$i开始,长度为10的部分字符串

    6、php_APC:Alternative PHP Cache 可选的PHP缓存

    7、php开发框架:ThinkPHP, Laravel

    8、php多线程:TSRM机制,复制空间(全局变量、局部变量),类似于java中的ThreadLocal。

      需要安装pthread扩展。

           Thread类有run、start、join、kill、isRunning等方法

    9、接口:interface定义,class实现时,用implements关键字   (与java类似)

         抽象类:abstract class定义,class实现是,用extends关键字 (与java类似)
        访问控制:对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。 

    10、Redis持久化:

      RDB方式:定期快照;     AOF方式:记录写操作,重启时执行

    11、TCP三次握手和四次挥手

    12、sort:对数组的值进行从低到高排序

           ksort:对数组的键名进行从低到高排序

    <?php
    
    $fruits = array("lemon", "orange", "banana", "apple");
    sort($fruits);
    foreach ($fruits as $key => $val) {
        echo "fruits[" . $key . "] = " . $val . "
    ";
    }
    
    ?> 

         以上示例输出的内容:

      fruits[0] = apple
      fruits[1] = banana
      fruits[2] = lemon
      fruits[3] = orange

    13、Memcache:分布式key-value DB,哈希表,两阶段哈希(two stage hash)结构

    14、排序算法

      冒泡排序:稳定排序

           选择排序:不稳定

           插入排序:稳定

           快速排序:不稳定。

                  基本思路:(1)先从数列中取出一个数作为基准数;(2)分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边(3)再对左右区间重复第二步,直到各区间只有一个数

  • 相关阅读:
    信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1009:带余除法
    1007:计算(a+b)×c的值
    1007:计算(a+b)×c的值
    1007:计算(a+b)×c的值
    1006:A+B问题
    1006:A+B问题
    1006:A+B问题
    C# 运算符 ?、??、?: 、?. 、 各种问号的用法和说明
    C# 运算符 ?、??、?: 、?. 、 各种问号的用法和说明
    在C#中??和?分别是什么意思?
  • 原文地址:https://www.cnblogs.com/wangle1001986/p/8644484.html
Copyright © 2011-2022 走看看