<code><?php</code>
<code>abstract</code> <code>class</code> <code>ParamHandler{</code>
<code> </code><code>protected</code> <code>$source</code><code>;</code>
<code> </code><code>protected</code> <code>$param</code> <code>= </code><code>array</code><code>();</code>
<code> </code><code>function</code> <code>__construct(</code><code>$source</code><code>) {</code>
<code> </code><code>$this</code><code>->source = </code><code>$source</code><code>;</code>
<code> </code><code>}</code>
<code> </code><code>function</code> <code>addParam(</code><code>$key</code><code>,</code><code>$val</code><code>) {</code>
<code> </code><code>$this</code><code>->params[</code><code>'$key'</code><code>] = </code><code>$val</code><code>;</code>
<code> </code><code>function</code> <code>getAllParams() {</code>
<code> </code><code>return</code> <code>$this</code><code>->params;</code>
<code> </code><code>static</code> <code>function</code> <code>getInstance(</code><code>$filename</code><code>){ </code><code>//用來擷取子類執行個體,檔案類型多時,隻 //需在這裡加上if語句,然後對應寫上子類</code>
<code> </code><code>if</code> <code>(preg_match(</code><code>"/\.xml$/i"</code><code>, </code><code>$filename</code><code>)) {</code>
<code> </code><code>return</code> <code>new</code> <code>XmlParamHandle(</code><code>$filename</code><code>);</code>
<code> </code><code>}</code>
<code> </code><code>return</code> <code>new</code> <code>TextParamHandler(</code><code>$filename</code><code>);</code>
<code> </code><code>abstract</code> <code>function</code> <code>write(); </code><code>//保證子類實作這兩個方法</code>
<code> </code><code>abstract</code> <code>function</code> <code>read();</code>
<code>}</code>
<code>?></code>
然後下面是子類
<code>class</code> <code>XmlParamHandle </code><code>extends</code> <code>ParamHdndle{</code>
<code> </code><code>function</code> <code>write(){}</code>
<code> </code><code>function</code> <code>read(){}</code>
<code>class</code> <code>TextParamHandle </code><code>extends</code> <code>ParamHdndle{</code>
這樣執行個體化的時候可以這樣子
$test = ParamHandler::getInstance("./params.xml");
這樣根據傳入的params.xml檔案會找到對應的類執行個體化。
本文轉自 陳小龍哈 51CTO部落格,原文連結:http://blog.51cto.com/chenxiaolong/1695804