簡體   English   中英

PHP包括實踐

[英]PHP include practices

有沒有人知道PHP何時執行include和include_once調用?

我想知道因為我來自Flash和桌面開發背景,你必須在每個類的開頭導入你的類。

但是現在我開始構建更復雜的PHP代碼,看起來當我真正需要它們來節省加載時間時才更好。 例如,查看以下psuedo代碼:

if (I_need_to_check_login)
 { 
   include_once "Class.class.php";
   $C = new Class();
 }

如果我這樣做,每次運行代碼時或者只有在執行include_once時才會包含文件Class.class.php。

我有點像一個類怪人,通常為我的應用程序使用的任何功能構建一個類,所以我經常有很多類文件。

include,include_once是標准的PHP指令。 這意味着當解釋器在程序流程中找到一個時,解釋器執行每個include,include_once。 如果控制結構避免執行具有包含指令的代碼段,則不會執行該指令。

在您的示例中,當且僅當I_need_to_check_login為真時,才會執行include_once。

只有在翻譯到達那里時才會執行包含。 例如:

$variable = false;
if ($variable) {
    include 'a.php';
} else {
    include 'b.php';
}

在這種情況下,只包括b.php。

有關其行為的更多信息: PHP手冊 - include

是的,每次你必須打電話: $C = new Class(); 您將不得不要求或包含該文件。 現在你可以做的而不是include_once是:

if (!class_exists('MyClass')) {
    include("Class.class.php");
}

這意味着你可能沒有再包括它,如果你之前已經包括它。 這也將提高性能,因為include的執行速度比include_once快。

只有在執行include_once命令時才會包含文件。

因此,如果I_need_to_check_login評估為false ,則根本不會包含文件

它可以很容易地通過添加echo "I've been included"; exit; echo "I've been included"; exit; 到該文件的第一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM