• 强哥PHP面向对象学习笔记


    面向对象编程OOP
    目标:
    重用性、灵活性、扩展性
    特点:
    封装、继承、多态

    类的书写方法:
    class PersionName{
    }

    特征:属性。其实就是变量
    行为:方法。其实就是函数


    1.实例化对象
    2.对象中成员的访问
    3.特殊的对象引用$this
    4.构造方法和析构方法

    魔术方法:
    __construct() //构造方法
    __destruct() //析构方法
    __toString() //

    对象链:
    $obj->a()->b();
    //a里面应该return $this;

    属性的作用域:
    1.在类体内都可以使用
    2.局部变量的使用

    类方法传参:
    $obj->say('yujie');

    全局变量、局部变量、对象属性、超全局变量的作用范围

    全局变量:整个页面都可以使用,函数里要用全局变量必须加global
    局部变量:函数内部使用
    对象属性:在整个为类中使用,包括子类和父类
    超全局变量:页面的任何地方都能使用

    类的继承特性:
    class It extends Person{}
    parent::abc();

    与类有关的测试函数:
    1.获取对象的类
    get_class();
    2.获取对象的父类
    get_parent_class();
    3.获取类的属性
    get_class_vars();
    4.获取对象的属性
    get_object_vars();
    5.获取类和对象的方法
    get_class_methods();
    6.对象或类中是否含有say方法
    method_exists("Person","say");
    7.对象或类中是否含有name属性
    property_exists("Person","name");
    8.测试对象是否属于某个类
    $p1 instanceof person
    9.是否是对象
    is_object();
    10.测试类是否存在
    class_exists();
    11.测试接口是否存在
    interface_exists();

    分页类:
    1.需要赋初值的东西全放到__construct()
    2.public属性能赋值初值,不能参与任何运算
    3.运算顺序
    4.类中只有方法能调用并执行

    封装:
    private function start(){}

    三个修饰词:
    public //子类和外部都可以使用
    protected //子类可以使用
    private //本类可以使用

    抽象类: //含有抽象方法的类叫抽象类
    abstract class prc(){}
    接口: //只含有抽象方法的类叫接口
    interface Usb{}

    多态: //通过一个函数去加工不同形态的类对象

    魔术方法:
    1.__construct
    2.__destruct
    3.__call
    4.__get
    5.__set
    6.__isset
    7.__unset
    8.__toString
    9.__clone

    自动加载:
    __autoload

    function __autoload($classname){
    include($classname.".class.php");
    }
    $user = new Model("user");

    关键字:
    1.const
    类常量
    可以修饰属性
    const HOST='localhost';
    类外面:
    Model::HOST;
    类里面:
    self::HOST;
    2.static
    静态变量
    可以修饰属性和方法
    static $objs=0;
    类外面:
    Model::$objs;
    类里面:
    self::$objs;
    3.final
    无法覆盖
    修饰类和方法
    最终版本


    PDO数据库抽象层:
    1.pdo类
    2.pdo预处理类
    3.pdo异常处理类

    mysql数据库支持:预处理和事务机制

    生成PDO数据库连接对象
    $pdo = new PDO("mysql:host=localhost;dbname=test","root","123456");
    设置操作字符集
    $pdo -> exec("set names utf8");
    设置从结果集预处理对象中获取数据的默认数组类型
    $pdo -> setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);

    执行增删改操作:
    exec()

    执行查找操作
    query()

    获得最后一次插入的ID
    lastInsertId()

    设置结果集预处理对象中获取数据的默认数组类型:
    setAttribute()

    查看结果集预处理对象中获取数据的默认数组类型:
    getAttribute()

    PDO::ATTR_ERRMODE(pdo报错模式)
    PDO::ERRMODE_SILENT
    PDO::ERRMODE_WARNING
    PDO::ERRMODE_EXCEPTION

    PDO::ATTR_DEFAULT_FETCH_MODE(PDO获取模式):
    PDO::FETCH_NUM
    PDO::FETCH_ASSOC
    PDO::FETCH_BOTH

    异常处理警报:
    1.getMessage();
    2.getFile();
    3.getLine();


    事务机制:
    1.myisam不支持
    2.InnoDB支持

    预处理机制:
    1.预先准备sql发送到服务器上
    $obj = $pdo -> prepare($sql);
    2.改预处理语句绑值,并设置绑定值类型
    $obj -> bindValue(1,0,PDO::PARAM_INT);
    3.执行这条语句
    $obj -> execute();

  • 相关阅读:
    Python开发基础-Day11内置函数补充、匿名函数、递归函数
    Python开发基础-Day10生成器表达式形式、面向过程编程、内置函数部分
    Python开发基础-Day9-生成器、三元表达式、列表生成式、生成器表达式
    Python开发基础-Day8-装饰器扩展和迭代器
    Python开发基础-Day5-字符编码、文件处理和函数基础(草稿)
    Python开发基础-Day7-闭包函数和装饰器基础
    Python开发基础-Day6-函数参数、嵌套、返回值、对象、命名空间和作用域
    Android网络课程笔记-----Actionbar的实现方式
    Android网络课程笔记-----自定义控件的方法和技巧
    浅谈android的selector背景选择器
  • 原文地址:https://www.cnblogs.com/redheat/p/7069833.html
Copyright © 2020-2023  润新知