您的位置 >>> 星想互聯 >>> 編程技術 >>> PHP高級編程
PHP 類的封裝和使用
點擊數:486  發布時間2018-12-11 16:31:06
類:相似的數據和數據操作的封裝  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、將記錄集中的第一條轉換為一維數組。

按 Ctrl+C 復制代碼

<?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();
?>

 
來源:咸寧網站建設
日本高清成 人,A级高清毛片av无码,欧美成 人 免费在线播放-首页 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>