[英]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.