關於PHP中require的問題

來源:互聯網
上載者:User
1.使用PHP中require如何包含一個檔案夾中的所有檔案?
require("./folder/*")是不行的,難道PHP中不能像Java中的include一樣靈活方便嗎?
不能正則識別名稱嗎?模式識別?

2。不用require同一個類兩次?
file name: A_Dao.class.php
function: contain basic operations of A.class
A_Dao.class.php
require("DBConnection.class.php");
...
...
...
?>

another file: B_Dao.class.php
function: contain basic operations of B.class
B_Dao.class.php
require("DBConnection.class.php");
...
...
...
?>

A and B.class are entities as abstracted from conceptions.

ServiceA.class.php
require("./dao/A_Dao.class.php");
require("./dao/B_dao.class.php");
...
...
...
?>
run ServiceA.class.php
"Fatal error: Cannot redeclare class DBConnection in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\application\dao\DBConnection.class.php on line 3"

What's wrong?
為什麼不能重複require相同的(DBConnection.class.php)?
編譯器不會總動處理嗎(像Java一樣)?


回複討論(解決方案)

為什麼要require(*)呢?
require會把目標檔案全部插入當前檔案。如果允許了*,目錄下所有檔案都會被插入進來,這樣,檔案會超級大。

第二個問題:
require_once

C/C++都有不允許重複include同一個檔案。

php的include和c語言是差不多的,每次執行頁面都會include一次,

如果支援這個,我想,會嚴重影響效率

不像java的import java.io.*;編譯後,只匯入用得到庫,不影響.class大小

require("./folder/*")會加重伺服器的負擔,因為載如了所有folder下面的檔案,Web伺服器每次接收請求都這麼乾的話,伺服器是承受不了的。

php只允許包含一次,你可以使用require_once來避免重複require.

就是說PHP不會自動最佳化一下
但是我針對每一個實體物件都寫了一個對應的操縱資料的類
這樣我在一個業務中需要處理所有的實體物件,進行資料庫的insert和select
實體物件有14個,相應的DAO class有14個
我以前是用java,Structs架構就是這樣分層的
不過我現在使用的我稱之為MV
folders:
entities: contain all the entity classes
dao: contain all the database access objects according to every entity
service: use dao and entitises to complete tasks
我第一次使用PHP,不知道大家使用PHP都是如何系統分層的?如何設計的?

http://blog.csdn.net/tyjhField
在我的部落格裡我寫了問題,有興趣的可以協助、探討一下

你可以用Autoload

require_once()

1. 相比較而言,Java 可以說是“符號級”的包含,而 PHP 中,無論 include/include_once/require/require_once,都是“檔案級”的包含,所以,PHP 不支援萬用字元也是可以理解的。如果你一定想要“包含一個檔案夾下所有程式檔案”的效果,可以用 scandir() 或者類似的辦法做遍曆來包含,也不複雜。只要是“需要的”,無所謂效率不效率。

2. 用 require_once 就好了。1 樓、3 樓兄弟說的都有不準確的地方。PHP/C/C++ 都允許包含多次。PHP 重複包含時經常會報錯,只是因為 function 和 class 不能“重複定義”而已。


????????????????????????????????
[img=http://csdnimg.cn/bbs/m/i/red_1.gif]勳章[/img][img=http://csdnimg.cn/bbs/m/i/yellow_1.gif]勳章[/img][img=http://csdnimg.cn/bbs/m/i/blue_1.gif]勳章[/img]勳章啊……我啥時候也能得到這些……
????????????????????????????????
基於CSDN論壇提供的外掛程式擴充功能,自己做了個簽名檔工具, 分享給大家,歡迎 技術交流 :)

我也搞不懂那個require 和 include 怎麼用 ,有哪位大哥能幫我把wordpress和淘客整合一下,求協助,小弟網址www.nygjp.cn

不懂,不理解,求講解。。。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.