- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > 編程語(yǔ)言 >
- PHP中怎么利用OOP進(jìn)行編程
PHP中怎么利用OOP進(jìn)行編程,相信很多沒(méi)有經(jīng)驗的人對此束手無(wú)策,為此本文總結了問(wèn)題出現的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
如何使用PHP的OOP進(jìn)行編程
在PHP中要完成OOP,需要進(jìn)行對象封裝,也就是編寫(xiě)類(lèi)。我們可以通過(guò)生成一個(gè)新的SQL類(lèi)實(shí)現對數據庫的簡(jiǎn)單封裝。例如:
classSQL
{
var$Driver;//實(shí)際操作的數據庫驅動(dòng)子類(lèi)
var$connection;//共用的數據庫連接變量
functionDriverRegister($d)
{
if($d!="")
{
$include_path=ini_get("include_path");
$DriverFile=$include_path."/".$d.".php";
//驅動(dòng)的存放路徑必須在PHP.ini文件中設定的INCLUDE_PATH下
if(file_exists($DriverFile))//查找驅動(dòng)是否存在
{
include($DriverFile);
$this->Driver=new$d();
//根據驅動(dòng)名稱(chēng)生成相應的數據庫驅動(dòng)類(lèi)
returntrue;
}
}
returnfalse;//注冊驅動(dòng)失敗
}
functionConnect($host,$user,$passwd,$database)//連接數據庫的函數
{
$this->Driver->host=$host;
$this->Driver->user=$user;
$this->Driver->passwd=$pas
swd;
$this->Driver->database=$d
atabase;
$this->connection=$this->Driver->Connect();
}
functionClose()//關(guān)閉數據庫函數
{
$this->Driver->close($this->connection);
}
functionQuery($queryStr)//數據庫字符串查詢(xún)函數
{
return$this->Driver->query($queryStr,$this->connection);
}
functiongetRows($res)//查找行
{
return$this->Driver->getRows($res);
}
functiongetRowsNum($res)//取得行號
{
return$this->Driver->getRowsNum($res);
}
}
?>
如何使用PHP的OOP進(jìn)行編程
我們以操作數據庫為例。我們寫(xiě)一個(gè)數據庫驅動(dòng)類(lèi)MySQL,在該類(lèi)中,我們把有關(guān)MySQL數據庫操作的函數都做進(jìn)一步的封裝。把包含該類(lèi),文件名為MySQL.php的文件放在PHP的系統include_path下,就可以正常地使用了。注意編寫(xiě)數據庫驅動(dòng)文件時(shí),文件名應和類(lèi)名保持一致。
ClassMySQL
{
var$host;
var$user;
var$passwd;
var$database;
functionMySQL()//利用構造函數實(shí)現變量初始化
{
$host="";
$user="";
$passwd="";
$database="";
}
functionConnect()
{
$conn=MySQL_connect($this->host,$this->user,$this->passwd)or
die("Couldnotconnectto$this->host");
MySQL_select_db($this->database,$conn)or
die("Couldnotswitchtodatabase$this->database;");
return$conn;
}
functionClose($conn)
{
MySQL_close($conn);
}
functionQuery($queryStr,$conn)
{
$res=MySQL_query($queryStr,$conn)or
die("Couldnotquerydatabase");
return$res;
}
functiongetRows($res)
{
$rowno=0;
$rowno=MySQL_num_rows($res);
if($rowno>0)
{
for($row=0;$row<$rowno;$row++) rowno="mysql_num_rows($res);">
同樣我們要封裝其他的“數據庫驅動(dòng)”到我們的SQL類(lèi)中,只需要建立相應的類(lèi),并以同名命名驅動(dòng)文件,放到PHP的include目錄就可以了。
完成封裝以后,就可以在PHP中按照OOP的思想來(lái)實(shí)現對數據庫的編程了。
< ? Include(“SQL.php”); $sql=newSQL;//生成新的Sql對象 if($sql->DriverRegister(“MySQL”))//注冊數據庫驅動(dòng)
{
$sql->Connect(“l(fā)ocalhost”,”root”,””,”test”);
$res=$sql->query(“select*fromtest”);//返回查詢(xún)記錄集
$rowsnum=$sql->getRowsNum($res);
if($rowsnum>0)
{
$rows=$sql->getRows($res);
foreach($rowsas$row)//循環(huán)取出記錄集內容
{
foreach($rowas$field){
print$field;}
}
}
$sql->Close();
}
? >
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站