2013-01-21 50 views
0

通常我在模板中,在這裏我指的是文件,實現的功能做require lib.phpPHP - 與模板依賴的逆?</p> <p><strong>lib.php</strong>:</p> <pre><code>function output(){ echo "test"; } </code></pre> <p>和<strong>的template.php</strong>:

 


    head 
    {?php 
    require lib.php; 
    output(); 
    ?> 
    ... 

現在我想有兩個不同的文件lib1.phplib2.php與兩個differenet im對output()的解釋。

lib1.phplib2.php我想引用template.php,並注入適當的output.php實現。那可能嗎?

回答

1

爲什麼不使用OOP functionality

Lib1.php

class Lib1 { 

    public function output() 
    { 
     return 'Library 1!'; 
    } 

} 

Lib2.php

class Lib2 { 

    public function output() 
    { 
     return 'Library 2!'; 
    } 

} 

在你的其他PHP文件:

$lib1 = new Lib1(); 
echo $lib1->output(); 

$lib2 = new Lib2(); 
echo $lib2->output(); 
+0

Thnx的答案,我不想使用面向對象,因爲我想保持我的模板在一個單獨的文件(template.php)。這個文件只有很少的PHP和很多的HTML。所以我不想用巨大的回聲來包裝它。有沒有辦法從類'Lib2'加載'template.php',並用適當的實現來替換template.php中的所有'output'函數調用? – Skip

0

它的時候了OOP(面向對象編程) 。對於有擴展名的課程來說,這是一個完美的情況。否則是一個大問題。 Look here如果你有興趣。