類:相似的數據和數據操作的封裝 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();
?>

