類(lèi):相似的數據和數據操作的封裝 class
成員量:普通的量加上一定的修飾就變成了成員量 public,protected,private
成員方法:普通的函數,加上一定的修飾,放入到類(lèi)中就變成了成員方法.
實(shí)例化:類(lèi)創(chuàng )建特例的過(guò)程(實(shí)例化一個(gè)對象 new)
對象: 類(lèi)的特例或者實(shí)例 object
認識類(lèi) -> 類(lèi)的封裝 -> 類(lèi)的實(shí)例化 -> 對象的認識 -> 操作對象
------------------------------------------------------------------------------------------------------
類(lèi)的使用步驟:
1)創(chuàng )建類(lèi) class
語(yǔ)法格式:
class 類(lèi)名{
類(lèi)的實(shí)現:
成員量
成員方法
}
類(lèi)名規范:
1) 類(lèi)名只能使用字母,下劃線(xiàn)開(kāi)頭,不能以數字開(kāi)頭
2) 類(lèi)名不能使用關(guān)鍵字
3) 類(lèi)名一定有意義
4) 類(lèi)名不區分大小寫(xiě),但是最好使用駝峰法的寫(xiě)法
userModel UserModel
5)類(lèi)名不能重復
6) Class Connect{ } 空類(lèi),空函數么有意義,空類(lèi)是為了項目后期擴展預留的接口
實(shí)例化類(lèi)(instance):
對象變量 = new 類(lèi)名;
或者 對象變量 = new 類(lèi)名();
對象變量: 普通的變量,只不過(guò)他的類(lèi)型是對象類(lèi)型
$object = new myClass;/new myClass();
類(lèi)的使用
is_object():判斷某個(gè)變量是否是對象;
instanceof:判斷對象是否是某個(gè)類(lèi)的實(shí)例化
<?php // 類(lèi)使用步驟 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"; }?>
對象的實(shí)例化過(guò)程中,類(lèi)名不區分大小寫(xiě),后面可以有小括號也可省略,但是一定要注意,聲明類(lèi)的時(shí)候是沒(méi)有小括號的(區別于函數)
成員變量:
普通的變量放入到類(lèi)中就變成了成員量(類(lèi)的屬性)
格式:
修飾符 變量名[=值];
變量定義格式:
修飾符 變量;
變量的賦值
修飾符 變量名 = 值;
修飾符: public : 公有的,在類(lèi)內可以使用,在類(lèi)外也可以使用,等價(jià)于 JS 的 var
Public $height = 100;
類(lèi)外的使用:
1) 對象名 -> 變量名(無(wú)$)
類(lèi)內調用
2) $this -> 變量名(無(wú)$) 偽變量
$this :對象本身
3) 對于某個(gè)對象的操作,對于另外的對象沒(méi)有任何影響,也就是所謂的對象無(wú)關(guān)性
成員方法:
普通的函數放入到的類(lèi)中就變成了成員方法
格式:
修飾符 function 方法名(參數){
返回值
}
<?php // 類(lèi)使用步驟 class MyClass{ public $age = 100; } $obj = new MyClass; echo $obj -> age ; // 100 $obj -> age = 105; // 105 echo $obj -> age; // 對象操作的無(wú)關(guān)性 $obj1 = new MyClass; echo $obj1 -> age; // 100 $obj1 -> age = 200; echo $obj1 -> age; // 200 echo $obj -> age; // 105?>
類(lèi)外使用:
對象 -> 方法名(實(shí)參列表);
類(lèi)內使用
$this -> 方法名(實(shí)參列表);
$this:
偽變量
代表的是當前操作該類(lèi)的對象。
類(lèi)內使用成員變量和成員方法:
$this -> 變量名(無(wú)$)
$this -> 方法名(參數);
<?phpclass UserModel{ public $user = "admin"; public $pwd = "123456"; public $tag = 0; // 用戶(hù)是否登錄的標示 // 傳入用戶(hù)登錄的數據 public function setUserPwd($u,$p){ $this -> login($u,$p); } // 用戶(hù)進(jìn)行登錄操作 public function login($tmp_u,$tmp_p){ if(!$this -> tag){ if($this -> user == $tmp_u && $this -> pwd == $tmp_p) $this -> tag = 1; // 用戶(hù)是登錄狀態(tài) } } // 判斷用戶(hù)是否登錄 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";?>
類(lèi)常量:
類(lèi)中恒定不變的量
格式:
Const 大寫(xiě)的常量名 = 值;
Eg:
Const HOST = “l(fā)ocalhost”;
類(lèi)外調用:
類(lèi)名 :: 常量名
類(lèi)內的調用: self (指本類(lèi))
Self::常量名
NOTE:
1、::叫做作用域操作符
2、常量在聲明的時(shí)候必須賦值!
3、聲明常量的過(guò)程中,不需要其他的修飾符
<?phpclass 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();?>
類(lèi)的封裝:
數據庫操作類(lèi)
1、定義類(lèi)名和類(lèi)功能
2、類(lèi)名:MySql
3、功能:編程語(yǔ)言操作mysql數據庫
分析成員量:
1、服務(wù)器名: $host
2、數據庫名: $dbname
3、用戶(hù)名: $user
4、密碼: $pwd
5、鏈接編碼: $code = “utf8”
6、數據庫鏈接 $link
7、數據庫返回的二維數組 $data = array();
8、記錄集 $result
分析方法:
1、添加
2、刪除
3、修改
4、查詢(xún)
5、數據庫鏈接 _connect(){ 成功返回true }
6、編碼設置
7、將記錄集轉換為二維數組
8、將記錄集中的第一條轉換為一維數組。
<?php//功能:數據庫操作類(lèi)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();?>
聯(lián)系客服