2012-09-04 52 views
12

可能重複:
Is there a way to program 100% object-oriented in PHP?在Java中,是否有`public static main(String [] args)`的PHP等價物?

我所試圖實現將是這個樣子:

<?php 
     //index.php 
     class Site{ 
      public static function main(){ 
       // starts all the processing of the site 
      } 
     } 
?> 

所以,當有人訪問該網站的index.php網站將在課堂外沒有任何代碼的情況下啓動。

是的我知道我可以使用__autoload甚至spl_autoload_register來處理類的自動加載,但仍然很可能需要添加到類之外。

我懷疑這是可能的,但我不知道爲什麼這是不可能的。

+0

爲什麼你需要一個入口點在PHP? – perilbrain

+0

@deceze是的,它看起來可能會滿足我的問題的要求,但是我經常搜索它的結果從未出現過。可能是因爲我在搜索中使用了錯誤的信息。 – JRSofty

+0

是的,有... 公共職能__construct(){/ *做對象建設* /} – Matth3w

回答

18

Java的入口點被定義爲main方法。 PHP的入口點被定義爲第一個被執行的文件的第一行。你必須以「程序」代碼開始。

+0

感謝您的直接答案。在過去的兩天裏,我一直在爲自己的頭腦困惑,同時尋找可能的直接解答。我想我需要更多的練習與我的搜索條件,因爲你找到了重複。 – JRSofty

1

你可以這樣編寫你的Site類,並讓這個類構造所有的東西,但你仍然需要一個入口文件來初始化這個類。您可以在索引文件中用一行「啓動」您的網站。似乎不是靈活性的一個大的抑制劑。

所以,答案是否定的:)

0

有沒有這樣的概念了與PHP的開箱。你將不得不在index.php中或者.htaccess文件中的東西,它將用戶重定向到你想要的文件,但這個類將永遠需要通過代碼實例化。

-1

你可以實現這個很簡單bij使用你的網站上的.htaccess文件:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

你的index.php會自動完成處理。用1行程序代碼,你可以創建一個班級,然後從那裏繼續。

<?php 
     //index.php 
     class Site{ 
      public static function main(){ 
       // starts all the processing of the site 
      } 
     } 

     Site::main() 
?> 

查看我的tutorial/blog

+0

對不起@JvdBerg這不是我正在尋找。你的例子仍然顯示'Site :: main()'這正是我試圖避免的。我現在知道的一定是不可能使用PHP。 – JRSofty

相關問題