簡單的理解
形象“好比兩個人打架,你要用程序去描述它,面向結構了,你是把每一步的對打都寫好了,比如對方出什麼招數,你出什麼招數,必須每一步都寫出來,面向對象的方法了,你要把打架的過程拆分成幾個部分,打架前,打架中,及其之後”。
現在對於PHP的面向對象的做法,已經學習了一段時間,做的系統裡面也有是用面向對象的方法做的了。
說一說面向對象的好處吧,它可以讓系統很好的模塊化,可以讓很多的程序員一起工作,提高了編碼的效率。對於整個系統的維護和更新也方便了很多的。
下面帖個類出來,大家感受一下吧。這個是一個數據庫鏈接和操作的基礎類,它為其他類說引用吧。
<?php
/*
數據庫類文件:class_database.php
數據庫操作類,本類是其他類操作的基礎,即其他類函數的實現一般情況下通過數據庫類實現
創建世間:2007年5月17日
*/
include_once("config.inc"); //包含系統配置文件
class data_class
{
//屬性
private $host; //服務器名
private $user; //用戶名
private $pwd; //密碼
private $name; //數據庫名
private $connection; //連接標識
//方法
//__get():獲取屬性值
function __get($property_name){
if(isset($this->$property_name))
{
return($this->$property_name);
} else {
return(NULL);
}
}
//__set():設置單個私有數據屬性值,用於少量的修改數據
function __set($property_name, $value)
{
$this->$property_name = $value;
}
//__construct:構造函數,建立連接,在函數建立時自動調用建立,原則新建對象時不顯式調用
function __construct()
{
$this->host=sys_conf::$dbhost; //使用sys_conf類的靜態屬性
$this->user=sys_conf::$dbuser;
$this->pwd=sys_conf::$dbpswd;
$this->name=sys_conf::$dbname;
//建立與數據庫的連接
$this->connection=mysql_connect ($this->host,$this->user,$this->pwd);//建立連接
mysql_query("set names utf8");//字符集的統一
mysql_select_db("$this->name", $this->connection); //選擇數據庫挑戰杯
}
//__destruct:析構函數,斷開連接,在函數執行完畢時自動調用析構。實現關閉數據庫的連接,保證數據
庫數據的安全
function __destruct()
{
mysql_close($this->connection);
}
//增刪改:參數$sql為Insert update
function execute($sql)
{
mysql_query($sql);
//echo "寫入數據庫成功了";
//echo "我是dataclass類的execute函數";
}//execute
//查:參數$sql為Insert語句
//返回值為對象數組,數組中的每一元素為一行記錄構成的對象
function query($sql)
{
$result_array=array(); //返回數組
$i=0; //數組下標
$query_result=@mysql_query($sql,$this->connection); //查詢數據
while($row=@mysql_fetch_object($query_result))
{
$result_array[$i ]=$row;
}//while
return $result_array;
}
//獲得查詢結果的紀錄數函數
function result_query($sql)
{
$result=mysql_query($sql);
$result_c=mysql_num_rows($result);
return $result_c;
}
}
?>