今日ご紹介するのはそれでは、PHPオブジェクト指向プログラミングを使用する実際的な意義と応用方法を例を用いて説明します。
通常、データベース バックエンドを使用して Web サイトを構築するときは、プログラムがさまざまなアプリケーション環境に適している必要があると考えます。他のプログラミング言語と異なるのは、PHP ではデータベースが一連の特定の関数によって操作されることです (ODBC インターフェイスを使用しない場合)。これは非常に効率的ですが、カプセル化だけでは十分ではありません。統一されたデータベース インターフェイスがあれば、プログラムに変更を加えることなく、それをさまざまなデータベースに適用できるため、プログラムの移植性とクロスプラットフォーム機能が大幅に向上します。
PHP オブジェクト指向プログラミングを完了するには、オブジェクトのカプセル化、つまりクラスの作成が必要です。新しい SQL クラスを生成することで、データベースの単純なカプセル化を実現できます。例:
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><strong><font color="#006699"><</FONT></STRONG></SPAN><SPAN> ? </SPAN></SPAN><LI class=""><SPAN>class SQL </SPAN><LI class=alt><SPAN>{ </SPAN><LI class=""><SPAN>var $Driver; //实际操作的数据库驱动子类 </SPAN><LI class=alt><SPAN>var $connection; //共用的数据库连接变量 </SPAN><LI class=""><SPAN>function DriverRegister($d) </SPAN><LI class=alt><SPAN>{ </SPAN><LI class=""><SPAN>if($d!="") </SPAN><LI class=alt><SPAN>{ </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>include_path</FONT></SPAN><SPAN> = </SPAN><SPAN class=attribute-value><FONT color=#0000ff>ini_get</FONT></SPAN><SPAN>("include_path"); </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>DriverFile</FONT></SPAN><SPAN> = $include_path."/".$d.".php"; </SPAN></SPAN><LI class=""><SPAN>//驱动的存放路径必须在PHP.ini文件中设定的INCLUDE_PATH下 </SPAN><LI class=alt><SPAN>if( file_exists( $DriverFile)) //查找驱动是否存在 </SPAN><LI class=""><SPAN>{ </SPAN><LI class=alt><SPAN>include($DriverFile); </SPAN><LI class=""><SPAN>$this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></font></strong></span><span class="attribute"><font color="#ff0000">Driver</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">new</font></span><span> $d(); </span></span></li> <li class="alt"><span>// 根据驱动名称生成相应的数据库驱动类 </span></li> <li class=""><span>return true; </span></li> <li class="alt"><span>} </span></li> <li class=""><span>} </span></li> <li class="alt"><span>return false; //注册驱动失败 </span></li> <li class=""><span>} </span></li> <li class="alt"><span>function Connect($host,$user,$passwd,$database)//连接数据库的函数 </span></li> <li class=""><span>{ </span></li> <li class="alt"> <span>$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>Driver-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span class="attribute"><font color="#ff0000">host</font></span><span>=$host; </span> </li> <li class=""> <span>$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>Driver-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span class="attribute"><font color="#ff0000">user</font></span><span>=$user; </span> </li> <li class="alt"> <span>$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>Driver-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span class="attribute"><font color="#ff0000">passwd</font></span><span>=$pas </span> </li> <li class=""><span>swd; </span></li> <li class="alt"> <span>$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>Driver-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span class="attribute"><font color="#ff0000">database</font></span><span>=$d </span> </li> <li class=""><span>atabase; </span></li> <li class="alt"> <span>$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span class="attribute"><font color="#ff0000">connection</font></span><span> = $this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>Driver-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>Connect(); </span> </li> <li class=""><span>} </span></li> <li class="alt"><span>function Close()//关闭数据库函数 </span></li> <li class=""><span>{ </span></li> <li class="alt"> <span>$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>Driver-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>close($this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>connection); </span> </li> <li class=""><span>} </span></li> <li class="alt"><span>function Query($queryStr)//数据库字符串查询函数 </span></li> <li class=""><span>{ </span></li> <li class="alt"> <span>return $this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>Driver-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>query($queryStr,$this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>connection); </span> </li> <li class=""><span>} </span></li> <li class="alt"><span>function getRows($res)//查找行 </span></li> <li class=""><span>{ </span></li> <li class="alt"> <span>return $this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>Driver-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>getRows($res); </span> </li> <li class=""><span>} </span></li> <li class="alt"><span>function getRowsNum($res)//取得行号 </span></li> <li class=""><span>{ </span></li> <li class="alt"> <span>return $this-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>Driver-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> getRowsNum ($res); </span> </li> <li class=""><span>} </span></li> <li class="alt"><span>} </span></li> <li class=""> <span>? </span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span> </li> </ol>
PHPオブジェクト指向を望みます上記で紹介したプログラミング関連の知識は誰にとっても役立ちます。