<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post//</link>
<title><![CDATA[PHP面向对象编程快速入门 ]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 10 Apr 2008 05:25:18 +0000</pubDate> 
<guid>https://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	面向对象编程（OOP)是我们编程的一项基本技能，PHP4对OOP提供了良好的支持。如何使用OOP的思想来进行PHP的高级编程，对于提高PHP编程能力和规划好Web开发构架都是非常有意义的。下面我们就通过实例来说明使用PHP的OOP进行编程的实际意义和应用方法。 <br/><br/>　　我们通常在做一个有数据库后台的网站的时候，都会考虑到程序需要适用于不同的应用环境。和其他编程语言有所不同的是，在PHP中，操作数据库的是一系列的具体功能函数（如果你不使用ODBC接口的话）。这样做虽然效率很高，但是封装却不够。如果有一个统一的数据库接口，那么我们就可以不对程序做任何修改而适用于多种数据库，从而使程序的移植性和跨平台能力都大大提高。 <br/><br/>　　在PHP中要完成OOP，需要进行对象封装，也就是编写类。我们可以通过生成一个新的SQL类实现对数据库的简单封装。例如： <br/><br/>&lt; ? <br/>class SQL <br/>{ <br/>var $Driver; //实际操作的数据库驱动子类 <br/>var $connection; //共用的数据库连接变量 <br/>function DriverRegister($d) <br/>{ <br/>if($d!=&quot;&quot;) <br/>{ <br/>$include_path = ini_get(&quot;include_path&quot;); <br/>$DriverFile = $include_path.&quot;/&quot;.$d.&quot;.php&quot;; <br/>//驱动的存放路径必须在PHP.ini文件中设定的INCLUDE_PATH下 <br/>if( file_exists( $DriverFile)) //查找驱动是否存在 <br/>{ <br/>include($DriverFile); <br/>$this-&gt;Driver = new $d(); <br/>// 根据驱动名称生成相应的数据库驱动类 <br/>return true; <br/>} <br/>} <br/>return false; //注册驱动失败 <br/>} <br/>function Connect($host,$user,$passwd,$database)//连接数据库的函数 <br/>{ <br/>$this-&gt;Driver-&gt;host=$host; <br/>$this-&gt;Driver-&gt;user=$user; <br/>$this-&gt;Driver-&gt;passwd=$pas <br/>swd; <br/>$this-&gt;Driver-&gt;database=$d <br/>atabase; <br/>$this-&gt;connection = $this-&gt;Driver-&gt;Connect(); <br/>} <br/>function Close()//关闭数据库函数 <br/>{ <br/>$this-&gt;Driver-&gt;close($this-&gt;connection); <br/>} <br/>function Query($queryStr)//数据库字符串查询函数 <br/>{ <br/>return $this-&gt;Driver-&gt;query($queryStr,$this-&gt;connection); <br/>} <br/>function getRows($res)//查找行 <br/>{ <br/>return $this-&gt;Driver-&gt;getRows($res); <br/>} <br/>function getRowsNum($res)//取得行号 <br/>{ <br/>return $this-&gt;Driver-&gt; getRowsNum ($res); <br/>} <br/>} <br/>? &gt; <br/><br/>　　我们以操作MySQL数据库为例。我们写一个数据库驱动类MySQL，在该类中，我们把有关MySQL数据库操作的函数都做进一步的封装。把包含该类，文件名为MySQL.php的文件放在PHP的系统 include_path下，就可以正常地使用了。注意编写数据库驱动文件时，文件名应和类名保持一致。<br/><br/>&lt; ? <br/>Class MySQL <br/>{ <br/>var $host; <br/>var $user; <br/>var $passwd; <br/>var $database; <br/>function MySQL() //利用构造函数实现变量初始化 <br/>{ <br/>$host = &quot;&quot;; <br/>$user = &quot;&quot;; <br/>$passwd = &quot;&quot;; <br/>$database = &quot;&quot;; <br/>} <br/>function Connect() <br/>{ <br/>$conn = MySQL_connect($this-&gt;host, $this-&gt;user,$this-&gt;passwd) or <br/>die(&quot;Could not connect to $this-&gt;host&quot;); <br/>MySQL_select_db($this-&gt;database,$conn) or <br/>die(&quot;Could not switch to database $this-&gt;database;&quot;); <br/>return $conn; <br/>} <br/>function Close($conn) <br/>{ <br/>MySQL_close($conn); <br/>} <br/><br/>function Query($queryStr, $conn) <br/>{ <br/>$res =MySQL_query($queryStr, $conn) or <br/>die(&quot;Could not query database&quot;); <br/>return $res; <br/>} <br/>function getRows($res) <br/>{ <br/>$rowno = 0; <br/>$rowno = MySQL_num_rows($res); <br/>if($rowno&gt;0) <br/>{ <br/>for($row=0;$row&lt;$rowno;$row++) <br/>{ <br/>$rows[$row]=MySQL_fetch_row($res); <br/>} <br/>return $rows; <br/>} <br/>} <br/>function getRowsNum($res) <br/>{ <br/>$rowno = 0; <br/>$rowno = mysql_num_rows($res); <br/>return $rowno; <br/>} <br/>} <br/>? &gt; <br/>　　同样我们要封装其他的“数据库驱动”到我们的SQL类中，只需要建立相应的类，并以同名命名驱动文件，放到PHP的include目录就可以了。 <br/><br/>　　完成封装以后，就可以在PHP中按照OOP的思想来实现对数据库的编程了。<br/><br/>&lt;　? <br/>Include(“SQL.php”); <br/>$sql = new SQL; //生成新的Sql对象 <br/>if($sql-&gt; DriverRegister(“MySQL”)) //注册数据库驱动 <br/>{ <br/>$sql-&gt;Connect(“localhost”,”root”,””,”test”); <br/>$res=$sql-&gt;query(“select * from test”); //返回查询记录集 <br/>$rowsnum = $sql-&gt;getRowsNum($res); <br/>if($rowsnum &gt; 0) <br/>{ <br/>$rows = $sql-&gt;getRows($res); <br/>foreach($rows as $row) //循环取出记录集内容 <br/>{ <br/>foreach($row as $field){ <br/>print $field;} <br/>} <br/>} <br/>$sql-&gt;Close(); <br/>} <br/>?　&gt; <br/><br/>　　在实际应用中，我们还可以根据实际需求对各种对象类做进一步扩展。在PHP中，还提供了一系列复杂的OOP方法，例如继承，重载，引用，串行化等等。充分调动各种方法并灵活运用，就能够使你的网站更合理和结构化，开发和维护也更容易。
]]>
</description>
</item><item>
<link>https://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] PHP面向对象编程快速入门 ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>