zoukankan      html  css  js  c++  java
  • 强哥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();

  • 相关阅读:
    C# 操作配置文件
    C# Excel操作类
    没有找到 mspdb100.dll 的解决办法
    工厂方法模式
    .Net互操作2
    The certificate used to sign “AppName” has either expired or has been revoked. An updated certificate is required to sign and install the application解决
    手机抓包xcode自带命令行工具配合wireshark实现
    expecting SSH2_MSG_KEX_ECDH_REPLY ssh_dispatch_run_fatal问题解决
    使用ssh-keygen设置ssh无密码登录
    远程复制文件到服务器
  • 原文地址:https://www.cnblogs.com/redheat/p/7069833.html
Copyright © 2011-2022 走看看