• 知识点


    1.面向对象OOP

    面向对象就是把跟某一主题(类型称为类,实体叫做对象)的所有方法(即函数)和所有属性(即变量)组合起来,用这种逻辑来组织程序的一种程序开发方法。
    封装:
    可以简单理解为:类就是一个“语法上的封装”:将一些属性和方法封装起来,变成“我的”;
    这是广义的封装;但通常所说的封装,比这个更“严格”:
    将一个类中的属性或方法“尽可能地”少对外开放其使用权限;
    继承:
    就是语法上的常见情形;
    继承是设计类的时候的代码重用的最重要的机制;
    多态:
    就是多种表现形态;
    1,不同的对象,使用相同的方法,可能会得到不同的结果;
    2,同一个对象,使用相同的方法,也可能会得得到不同的结果;

    2.事务

    事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中所有操作都成功,则认为事务成功,然后提交,即使只有一个操作失败,事务也不成功。然后回滚
    事务的特点:
    原子性:一个事务中的所有语句,应该做到:要么全做,要么一个都不做;
    一致性:让数据保持逻辑上的“合理性”,比如:一个商品出库时,既要让商品库中的该商品数量减1,又要让对应用户的购物车中的该商品加1;
    隔离性:如果多个事务同时并发执行,但每个事务就像各自独立执行一样。
    持久性:一个事务执行成功,则对数据来说应该是一个明确的硬盘数据更改(而不仅仅是内存中的变化)。


    3.MVC

    Model(模型):处理应用程序数据逻辑的部分
    View(视图):处理数据显示的部分
    Controller(控制器):处理业务逻辑,调用Model获取数据,将数据传递给View

    4.魔术方法

    __call():当调用不存在的方法时会自动调用的方法
    __autoload():在实例化一个尚未被定义的类是会自动调用次方法来加载类文件
    __set():当给未定义的变量赋值时会自动调用的方法
    __get():当获取未定义变量的值时会自动调用的方法
    __construct():构造方法,实例化类时自动调用的方法
    __destroy():销毁对象时自动调用的方法
    __unset():当对一个未定义变量调用 unset()时自动调用的方法
    __isset():当对一个未定义变量调用 isset()方法时自动调用的方法
    __clone():克隆一个对象
    __tostring():当输出一个对象时自动调用的方法

    5.全局变量


    $_SESSION 用来获取session存储的值
    $_COOKIE 用来获取cookie存储的值
    $_SERVER 用来获取服务器和执行环境信息
    $_GET 用来获取get方式提交的值
    $_POST 用来获取post方式提交的值
    $_REQUEST 用来获取get和post方式提交的值


    6.HTTP状态码


    一. 消息系列
    二. 成功系列
    三. 重定向系列
    四. 请求错误系列
    五. 服务器信息端错误系列
    302:临时转移成功,请求的内容已转移到新位置 
    403:禁止访问
    500:服务器内部错误 
    401 代表未授权。 
    200 是请求成功
    404 是文件未找到
    502 是服务器内部错误。


    7.SESSION COOKIE


    联系:
    都是会话机制的实现方案,解决的是同一类问题!
    SESSION基于COOKIE,SESSION的标识SESSION-ID存于浏览器端的COOKIE中!
    区别:
    实现原理不同!
    COOKIE:数据存储于浏览器端,每次请求携带原始数据过来
    SESSION:数据存储于服务器端,浏览器每次请求携SESSION标识即可
    存储的数据类型不同,COOKIE存储字符串类型,SESSION除了资源类型都可以存储。


    8.sql中left join ,right join ,inner join的含义和区别是什么?


    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
    RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
    INNER JOIN跟JOIN是一样的,一般INNER关键字可以省略。INNER JOIN将只会返回相匹配的元素项,即不会返回结果为NULL的数据项。


    9.IP


    客户端 $_SERVER('REMOTE_ADDR')
    服务端 $_SERVER('SERVER_ADDR')


    10.算法


    (1)冒泡排序
    $n = count($arr);
    for($i = 1; $i < $n; $i++ ){ //冒泡排序

    for($k = 0; $k < $n-$i; $k++){

    if($arr[$k] > $arr[$k+1]){

    $t = $arr[$k];
    $arr[$k] = $arr[$k+1];
    $arr[$k+1] = $t;
    }

    }

    }


    (2)选择排序

    $n = count($arr);
    for($i = 0;$i < $n-1; $i++){ //选择排序
    $max = $arr[0];
    $pos = 0;
    for($k = $i+1;$k < $n; $k++){

    if($arr[$k] > $max){
    $max = $arr[$k];
    $pos = $k;
    }

    }
    $t = $arr[$pos];
    $arr[$pos] = $arr[$n-$i-1];
    $arr[$n-$i-1] = $t;
    }


    (3)二分法查找


    function binSearch2($arr,$low,$height,$k){ 
    if($low<=$height){ 
    $mid=floor(($low+$height)/2);//获取中间数

    if($arr[$mid]==$k){ 
    return $mid; 
    }elseif($arr[$mid]<$k){ 
    return binSearch2($arr,$mid+1,$height,$k); 
    }elseif($arr[$mid]>$k){ 
    return binSearch2($arr,$low,$mid-1,$k); 
    }


    return -1; 
    }


    (4)顺序查找
    function seqSearch($arr,$k){ 
    foreach($arr as $key=>$val){

    if($val==$k){ 
    return $key; 
    }


    return -1; 
    }


    11.PDO连接数据库


    $DSN = "mysql:host=服务器地址/名称;port=端口号;dbname=数据库名";
    $Opt = array(PDO::MYSQL_ATTR_INIT_COMMAND=>’set names 连接编码’);
    $pdo = new pdo($DSN, "用户名", "密码", $Opt);
    $result = $pdo->query(“返回结果集的sql语句”); //对比最原始的函数: mysql_query(“select ..... “)
    $result = $pdo->exec(“增删改的sql语句”);


    12.设计模式

    单例类
    class single{
    //创建静态私有的变量保存该类对象
    static private $instance;
    //参数
    private $config;
    //防止直接创建对象
    private function __construct(){
    }
    //防止克隆对象
    private function __clone(){

    }
    static public function getInstance($config){
    //判断$instance是否是Uni的对象

    //没有则创建
    if (!self::$instance instanceof self) {
    self::$instance = new self();
    }
    return self::$instance;

    }
    public function getName(){
    echo $this->config;
        }

    }


    工厂类
    class Gongchang{


    static function GetObject($className){
    $obj = new $className();
    return $obj;
    }


    }

  • 相关阅读:
    linux常用命令
    虚函数、纯虚函数、虚函数表、虚析构函数(一)
    有没有easyx库文件
    请教那位老师帮忙修重新改按键定义
    C语言txt文件元素追加
    do-while是如何控制指针+1的呢
    printf后的句子怎么显示啊
    如何用C语言生成高斯粗糙面
    读取文件时程序报错调试了好久不知道如何解决
    新人求教:字符串在文件输入中的整体输入
  • 原文地址:https://www.cnblogs.com/tudou1223/p/9173369.html
Copyright © 2020-2023  润新知