zoukankan      html  css  js  c++  java
  • PHP 类的封装和使用

    类:相似的数据和数据操作的封装  class

      成员量:普通的量加上一定的修饰就变成了成员量 public,protected,private

      成员方法:普通的函数,加上一定的修饰,放入到类中就变成了成员方法.

      实例化:类创建特例的过程(实例化一个对象 new)

      对象: 类的特例或者实例   object

    认识类 -> 类的封装 -> 类的实例化 -> 对象的认识 -> 操作对象

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

    类的使用步骤:

      1)创建类  class

        语法格式:

          class 类名{

          类的实现:

            成员量

            成员方法

          }

    类名规范:

      1) 类名只能使用字母,下划线开头,不能以数字开头

      2) 类名不能使用关键字

      3) 类名一定有意义

      4) 类名不区分大小写,但是最好使用驼峰法的写法

        userModel       UserModel

      5)类名不能重复

      6) Class Connect{ } 空类,空函数么有意义,空类是为了项目后期扩展预留的接口

    实例化类(instance):

      对象变量 = new 类名;

      或者  对象变量 = new 类名();

         对象变量:  普通的变量,只不过他的类型是对象类型

    $object = new myClass;/new myClass();

     类的使用

      is_object():判断某个变量是否是对象;

      instanceof:判断对象是否是某个类的实例化

    <?php
        // 类使用步骤
        class MyClass{
            
        }
        $obj = new MyClass;
        if(Class_exists("MyClass")){
            if(is_object($obj))
                echo "obj is object";
            else
                echo "obj isnot object";
            
        }else{
            echo "myclass isnot exists";
        }
    ?>

      对象的实例化过程中,类名不区分大小写,后面可以有小括号也可省略,但是一定要注意,声明类的时候是没有小括号的(区别于函数)

    成员变量:

      普通的变量放入到类中就变成了成员量(类的属性)

      格式:

        修饰符 变量名[=值];

        变量定义格式:

          修饰符 变量;

        变量的赋值

          修饰符 变量名 = 值;

        修饰符:  public : 公有的,在类内可以使用,在类外也可以使用,等价于 JS 的 var

    Public $height = 100;

    类外的使用:

      1) 对象名 -> 变量名(无$)

        类内调用

      2) $this -> 变量名(无$) 伪变量

          $this :对象本身

      3) 对于某个对象的操作,对于另外的对象没有任何影响,也就是所谓的对象无关性

    成员方法:

      普通的函数放入到的类中就变成了成员方法

      格式:

        修饰符 function 方法名(参数){

          返回值

        }

    <?php
        // 类使用步骤
        class MyClass{
            public $age = 100;
        }
        $obj = new MyClass;
        echo $obj -> age ;     // 100
        $obj -> age = 105;     // 105
        echo $obj -> age;
        // 对象操作的无关性
        $obj1 = new MyClass;
        echo $obj1 -> age;     // 100
        $obj1 -> age = 200;
        echo $obj1 -> age;     // 200
        echo $obj -> age;      // 105
    ?>

    类外使用:

      对象 -> 方法名(实参列表);

        类内使用

      $this -> 方法名(实参列表);

    $this:

      伪变量

        代表的是当前操作该类的对象。

        类内使用成员变量和成员方法:

         $this -> 变量名(无$)

         $this -> 方法名(参数);

    <?php
    class UserModel{
        public $user = "admin";
        public $pwd  = "123456";
        public $tag  = 0;         // 用户是否登录的标示
        // 传入用户登录的数据
        public function setUserPwd($u,$p){
            $this -> login($u,$p);
        }
        // 用户进行登录操作
        public function login($tmp_u,$tmp_p){
            if(!$this -> tag){
                if($this -> user == $tmp_u && $this -> pwd == $tmp_p)
                    $this -> tag = 1; // 用户是登录状态
            }
        }
        // 判断用户是否登录
        public function checklogin(){
            if($this -> tag == 1)    return true;
            else    return false;
        }
    } 
    $obj = new UserModel;
    $obj -> setUserPwd("admin","123456");
    if($obj -> checklogin())
        echo "login ok";
    else
        echo "login error";
    ?>

      类常量:

        类中恒定不变的量

        格式:

         Const 大写的常量名 = 值;

              Eg:

                     Const HOST = “localhost”;

              类外调用:

                     类名 :: 常量名

              类内的调用: self (指本类)

                     Self::常量名

      NOTE:  

        1、::叫做作用域操作符

        2、常量在声明的时候必须赋值!

        3、声明常量的过程中,不需要其他的修饰符

    <?php
    class Myclass{
        const HOST = "localhost";
        const USER = "root";
        public function show(){
            echo Myclass::HOST;
            echo self::USER;
            
        }
    }
    echo Myclass::HOST.Myclass::USER;
    $obj = new MyClass;
    echo "<hr/>";
    $obj -> show();
    ?>

    类的封装:

      数据库操作类

        1、定义类名和类功能

        2、类名:MySql

        3、功能:编程语言操作mysql数据库

      分析成员量:

        1、服务器名: $host

        2、数据库名: $dbname

        3、用户名:   $user

        4、密码:     $pwd

        5、链接编码: $code = “utf8”

        6、数据库链接  $link

        7、数据库返回的二维数组  $data = array();

        8、记录集 $result

      分析方法:

        1、添加

        2、删除

        3、修改

        4、查询

        5、数据库链接   _connect(){ 成功返回true }

        6、编码设置

        7、将记录集转换为二维数组

        8、将记录集中的第一条转换为一维数组。

    <?php
    //功能:数据库操作类
    class MySql{
        const HOST  = "localhost";
        const DBNAME = "thinkshop";
        const USER   = "root";
        const PWD    = "";
        
        public $code = "utf8";
        public $link = null;
        public $data = array();
        public $result = null;
        //数据库链接方法
        public function _connect(){
            if(self::HOST != "" && self::USER != ""){
                $this -> link = mysql_connect(self::HOST,self::USER,self::PWD);
                if(is_resource($this -> link)){
                    $db = mysql_select_db(self::DBNAME,$this -> link);
                    if($db){
                        $this -> setCode();
                        return true;
                    }else{
                        return false;
                    }
                }else{
                    return false;
                }
            }else{
                return false;
            }
        }
        // 设置编码
        public function setCode($code = ""){
            if($code != "")
                $this -> code = $code;
            mysql_query("set names ".$this -> code);
        }
    }
    
    $db = new MySql;
    if($db -> _connect()) echo "connect ok";
    else echo "connect error";
    echo mysql_error();
    ?>
  • 相关阅读:
    SpringMVC(一)
    Mybatis二(高级部分)
    Mybatis一(基础)
    泛型
    itcast-Hibernate orm元数据和 关系操作
    自动装箱自动拆箱,基本数据类型
    struts2 中的数据访问servletAPI
    Hibernate 查询
    itcast-ssh-crm实践
    final修饰符(2)
  • 原文地址:https://www.cnblogs.com/shuo-128/p/6857703.html
Copyright © 2011-2022 走看看