[要約] オブジェクト指向プログラミング (OOP) は私たちのプログラミングの基本スキルであり、PHP4 は OOP を適切にサポートします。 OOP のアイデアを使用して PHP の高度なプログラミングを実行する方法は、PHP プログラミング能力を向上させ、優れた Web 開発アーキテクチャを計画するために非常に意味があります。
オブジェクト指向プログラミング (OOP) は私たちのプログラミングの基本スキルであり、PHP4 は OOP を適切にサポートします。 OOP のアイデアを使用して PHP の高度なプログラミングを実行する方法は、PHP プログラミング能力を向上させ、優れた Web 開発アーキテクチャを計画するために非常に意味があります。以下では、例を使用して、PHP の OOP をプログラミングに使用する実際的な意義と応用方法を説明します。
通常、データベース バックエンドを使用して Web サイトを構築するときは、プログラムがさまざまなアプリケーション環境に適している必要があると考えます。他のプログラミング言語と異なるのは、PHP ではデータベースを操作するために一連の特定の関数が使用されることです (ODBC インターフェイスを使用しない場合)。これは非常に効率的ですが、カプセル化だけでは十分ではありません。統一されたデータベース インターフェイスがあれば、プログラムに変更を加えることなく、それをさまざまなデータベースに適用できるため、プログラムの移植性とクロスプラットフォーム機能が大幅に向上します。
PHP で OOP を完成するには、オブジェクトのカプセル化を実装する、つまりクラスを作成する必要があります。新しい SQL クラスを生成することで、データベースの単純なカプセル化を実現できます。例:
PHP:
コードをコピーします。 コードは次のとおりです: function DriverRegister($d)
{
if($d!="")
{
$include_path = ini_get("include_path")
$DriverFile = $include_path."/".$d." .php";
//ドライバーの保存パスは、PHP.ini ファイルで設定された INCLUDE_PATH の下にある必要があります
if(file_exists($DriverFile)) //ドライバーが存在するかどうかを確認します
{
include($DriverFile);
$ this- >Driver = new $d();
//ドライバー名に基づいて、対応するデータベース ドライバー クラスを生成します
}
} //ドライバーの登録に失敗しました
}
function ($host,$user ,$passwd,$database)//データベースに接続する関数
{
$this->Driver->host=$host;
$this->Driver->user= $ユーザー;
$this->ドライバー->passwd=$passwd;
$this->ドライバー->データベース=$データベース;
$this->ドライバー-> Connect();
}
function Close()//データベース関数を閉じる
{
$this->Driver->close($this->connection)
}
function Query($queryStr)//データベース文字列クエリ関数
{
return $this->Driver->query($queryStr,$this->connection)
}
function getRows($res)//行を検索
{
return $this-> ;Driver->getRows($res);
function getRowsNum($res)//行番号を取得します
return $this->Driver->($res); ?>
MySQLデータベースで運用している例です。データベース ドライバー クラス MySQL を作成します。このクラスでは、MySQL データベース操作に関連する関数をさらにカプセル化します。このクラスを含むファイルを MySQL.php という名前で PHP システムの include_path 配下に置くと、正常に使用できるようになります。データベース ドライバー ファイルを作成するときは、ファイル名がクラス名と一致している必要があることに注意してください。
PHP:
コードをコピー
コードは次のとおりです:
クラス MySQL
{
var $host;
var $ユーザー;
var $passwd;
var $データベース;
function MySQL() //利用构造関数数实现变量初期化
{
$host = "";
$ユーザー = 「」;
$passwd = 「」;
$データベース = 「」;
}
function Connect()
{
$conn = MySQL_connect($this->host, $this->user,$this->passwd) または
die("$ this->に接続できませんでした;ホスト");
MySQL_select_db($this->database,$conn) または
die("データベースに切り替えられませんでした $ this->database;");
$conn を返します。
}
関数 Close($conn)
{
MySQL_close($conn);
}
function Query($queryStr, $conn)
{
$res =MySQL_query($queryStr, $conn) または
die("データベースをクエリできませんでした");
$res を返す;
}
関数 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 $行;
}
}
function getRowsNum($res)
{
$rowno = 0;
$rowno = mysql_num_rows($res);
return $rowno;
}
}
?>
倍コードコードは次のようになります:
Include(“SQL.php”);
$sql = 新しい < font color="#0000bb">SQL; // 新しい Sql オブジェクトを生成
if($sql->DriverRegister(“MySQL”& lt;font color="#007700">)) //注册数据库驱动
{
$sql->Connect(“ localhost”,”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) //循環取出记录集内容
{
foreach($row as $field){
print $field;}
}
}
$sql->Close();
}
?>