最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP面向?qū)ο缶幊炭焖偃腴T

 更新時(shí)間:2006年12月14日 00:00:00   作者:  
【摘 要】面向?qū)ο缶幊蹋∣OP)是我們編程的一項(xiàng)基本技能,PHP4對(duì)OOP提供了良 好的支持。如何使用OOP的思想來進(jìn)行PHP的高級(jí)編程,對(duì)于提高PHP編程能力和 規(guī)劃好Web開發(fā)構(gòu)架都是非常有意義的。

面向?qū)ο缶幊蹋∣OP)是我們編程的一項(xiàng)基本技能,PHP4對(duì) OOP提供了良好的支持。如何使用OOP的思想來進(jìn)行PHP的高級(jí)編程,對(duì)于提高PHP 編程 能力和規(guī)劃好Web開發(fā)構(gòu)架都是非常有意義的。下面我們就通過實(shí)例來說明 使用PHP的OOP進(jìn)行編程的實(shí)際意義和應(yīng)用方法。

我們通常在做一個(gè)有數(shù)據(jù)庫后臺(tái)的網(wǎng)站的時(shí)候,都會(huì)考慮到程序需 要適用于不同的應(yīng)用環(huán)境。和其他編程語言有所不同的是,在PHP中,操作數(shù)據(jù) 庫的是一系 列的具體功能函數(shù)(如果你不使用ODBC接口的話)。這樣做雖然效 率很高,但是封裝卻不夠。如果有一個(gè)統(tǒng)一的數(shù)據(jù)庫接口,那么我們就可以不對(duì) 程序做任何修 改而適用于多種數(shù)據(jù)庫,從而使程序的移植性和跨平臺(tái)能力都大 大提高。

在PHP中要完成OOP,需要進(jìn)行 對(duì)象封裝,也就是編寫類。我們可以通過生成一個(gè)新的SQL類實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的簡 單封裝。例如: 
 PHP:  
復(fù)制代碼 代碼如下:
<? 
class SQL 

var $Driver; //實(shí)際操作的數(shù)據(jù)庫驅(qū)動(dòng)子類 
var $connection; //共用的數(shù)據(jù)庫連接變量 

function DriverRegister($d) 

if($d!="") 

$include_path = ini_get("include_path"); 
$DriverFile = $include_path."/".$d.".php"; 
//驅(qū)動(dòng)的存放路徑必須在PHP.ini文件中設(shè)定的 INCLUDE_PATH下 
if( file_exists( $DriverFile)) //查找驅(qū)動(dòng)是否存在 

include($DriverFile); 
$this->Driver = new $d(); 
// 根據(jù)驅(qū)動(dòng)名稱生成相應(yīng)的數(shù)據(jù)庫 驅(qū)動(dòng)類 
return true; 


return false; //注冊(cè)驅(qū)動(dòng)失敗 


function Connect($host,$user,$passwd,$database)//連接數(shù)據(jù)庫的函數(shù) 

$this->Driver->host=$host; 
$this->Driver->user=$user; 
$this->Driver->passwd=$passwd; 
$this->Driver->database=$database; 
$this->connection = $this->Driver->Connect(); 


function Close()//關(guān)閉數(shù)據(jù)庫函數(shù) 

$this->Driver->close($this->connection); 


function Query($queryStr)//數(shù)據(jù)庫字符串查詢函數(shù) 

return $this->Driver->query($queryStr,$this->connection); 


function getRows($res)//查找行 

return $this->Driver->getRows($res); 


function getRowsNum($res)//取得行號(hào) 

return $this->Driver-> getRowsNum ($res); 


?> 
 



我們以操作MySQL數(shù) 據(jù)庫為例。我們寫一個(gè)數(shù)據(jù)庫驅(qū)動(dòng)類MySQL,在該類中,我們把有關(guān)MySQL數(shù)據(jù)庫 操作的函數(shù)都做進(jìn)一步的封裝。把包含該 類,文件名為MySQL.php的文件放在 PHP的系統(tǒng) include_path下,就可以正常地使用了。注意編寫數(shù)據(jù)庫驅(qū)動(dòng)文件時(shí) ,文件名應(yīng)和類名保持一致。
PHP:  
復(fù)制代碼 代碼如下:
<? 
Class MySQL 

var $host; 
var $user; 
var $passwd; 
var $database; 
function MySQL() //利用構(gòu)造函數(shù)實(shí)現(xiàn)變量初始化 

$host = ""; 
$user = ""; 
$passwd = ""; 
$database = ""; 


function Connect() 

$conn = MySQL_connect($this->host, $this->user,$this->passwd) or 
die("Could not con nect to $ this->host"); 
MySQL_select_db($this->database,$conn) or 
die("Could not swi tch to database $ this->database;"); 
return $conn; 


function Close($conn) 

MySQL_close($conn); 


function Query($queryStr, $conn) 

$res =MySQL_query($queryStr, $conn) or 
die("Could not que ry database"); 
return $res; 


function getRows($res) 

$rowno = 0; 
$rowno = MySQL_num_rows($res); 
if($rowno>0) 

for( $row=0;$row<$rowno;$row++) 

$rows[$row]=MySQL_fetch_row($res); 

return $rows; 


function getRowsNum($res) 

$rowno = 0; 
$rowno = mysql_num_rows($res); 
return $rowno; 


?> 


同樣我們要封裝其他的“數(shù)據(jù)庫驅(qū)動(dòng)”到我們 的SQL類中,只需要建立相應(yīng)的類,并以同名命名驅(qū)動(dòng)文件,放到PHP的include 目錄就可以了。

完成封裝以后,就可以 在PHP中按照OOP的思想來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的編程了。

PHP:  
復(fù)制代碼 代碼如下:
<? 
Include(“SQL.php”); 
$sql = new < font color="#0000bb">SQL; //生成新的Sql對(duì)象 
if($sql-> DriverRegister(“MySQL”& lt;font color="#007700">)) //注冊(cè)數(shù)據(jù)庫驅(qū)動(dòng) 

$sql->Connect(“l(fā)ocalhost”,”root”&l t;font color="#007700">,””,”test”&l t;font color="#007700">); 
$res=$sql->query(“select & lt;font color="#007700">* from test”); //返回查詢記錄集 
$rowsnum = $sql->getRowsNum($res); 
if($rowsnum > 0) 

$rows = $sql->getRows($res); 
foreach($rows as $row) //循環(huán)取出記錄集內(nèi)容 

foreach($row as $field){ 
print $field;} 


$sql->Close(); 

?> 
 

在實(shí)際應(yīng)用中,我們還可以根據(jù)實(shí)際需求對(duì)各種對(duì)象類做進(jìn)一步擴(kuò) 展。在PHP中,還提供了一系列復(fù)雜的OOP方法,例如繼承,重載,引用,串行化 等等。充分調(diào)動(dòng)各種方法并靈活運(yùn)用,就能夠使你的網(wǎng)站更合理和結(jié)構(gòu)化,開發(fā) 和維護(hù)也更容易。

相關(guān)文章

  • php時(shí)間戳轉(zhuǎn)換代碼詳解

    php時(shí)間戳轉(zhuǎn)換代碼詳解

    在本篇文章里小編給各位分享一篇關(guān)于php時(shí)間戳轉(zhuǎn)換的知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以參考下。
    2019-08-08
  • php結(jié)合web uploader插件實(shí)現(xiàn)分片上傳文件

    php結(jié)合web uploader插件實(shí)現(xiàn)分片上傳文件

    這篇文章主要為大家詳細(xì)介紹了php結(jié)合web uploader插件實(shí)現(xiàn)分片上傳文件, 采用大文件分片并發(fā)上傳,極大的提高了文件上傳效率,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 利用擴(kuò)展的方式在PHP中使用Kafka的教程分享

    利用擴(kuò)展的方式在PHP中使用Kafka的教程分享

    這篇文章主要為大家詳細(xì)介紹了如何利用擴(kuò)展的方式實(shí)現(xiàn)在PHP中使用Kafka,具體包括擴(kuò)展安裝和這種方式的基本操作,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-05-05
  • 解析argc argv在php中的應(yīng)用

    解析argc argv在php中的應(yīng)用

    本篇文章是對(duì)argc與argv在php中的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php表單加入Token防止重復(fù)提交的方法分析

    php表單加入Token防止重復(fù)提交的方法分析

    這篇文章主要介紹了php表單加入Token防止重復(fù)提交的方法,結(jié)合實(shí)例形式分析了Token防止重復(fù)提交的原理與使用技巧,需要的朋友可以參考下
    2016-10-10
  • PHP開發(fā)中的錯(cuò)誤收集,不定期更新。

    PHP開發(fā)中的錯(cuò)誤收集,不定期更新。

    PHP開發(fā)中的錯(cuò)誤收集,不定期更新。 php開發(fā)的朋友需要用得到。
    2011-02-02
  • PHP函數(shù)extension_loaded()用法實(shí)例

    PHP函數(shù)extension_loaded()用法實(shí)例

    這篇文章主要介紹了PHP函數(shù)extension_loaded()用法,實(shí)例分析了函數(shù)extension_loaded()檢查一個(gè)擴(kuò)展是否已經(jīng)加載的具體用法,并補(bǔ)充說明了查看本機(jī)已加載php擴(kuò)展的方法,需要的朋友可以參考下
    2015-01-01
  • Redis構(gòu)建分布式鎖

    Redis構(gòu)建分布式鎖

    本文主要介紹了Redis構(gòu)建分布式鎖的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • PHP獲取文件夾內(nèi)文件數(shù)的方法

    PHP獲取文件夾內(nèi)文件數(shù)的方法

    這篇文章主要介紹了PHP獲取文件夾內(nèi)文件數(shù)的方法,涉及php操作文件夾及文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Yii 2.0中場景的使用教程

    Yii 2.0中場景的使用教程

    這篇文章主要給大家介紹了關(guān)于Yii 2.0中場景使用的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06

最新評(píng)論

垦利县| 渭源县| 洛阳市| 安宁市| 唐河县| 历史| 安图县| 青河县| 赤峰市| 织金县| 牟定县| 澜沧| 昌都县| 正定县| 临湘市| 革吉县| 丰镇市| 邢台市| 读书| 江安县| 漳州市| 张北县| 富川| 库尔勒市| 江油市| 中牟县| 阳城县| 民丰县| 弥渡县| 赤峰市| 正安县| 黄龙县| 彭山县| 克什克腾旗| 碌曲县| 凤冈县| 宁夏| 抚顺市| 郁南县| 海晏县| 乳源|