簡體   English   中英

PHP,自定義包含函數-如何使所有其他函數和變量可訪問?

[英]PHP, Custom include function - how do I make all other functions & variables accessible?

我為我的應用程序設計了一個自定義包含函數,該函數旨在使我的生活變得更加輕松,除了完成了完全相反的工作外,並導致我調試了相同類型的錯誤數小時,直到這個燈泡時刻意識到它是什么。

由於文件包含在函數中,因此文件內部的變量,函數等不是全局的。

有什么辦法可以使它起作用,還是整個練習毫無意義?

參見下面的代碼。

function import($a,$b = 1) { 
    global $options;

        if($b == 1) $folder = "internal_functions";
        elseif($b == 2) $folder = "external_functions";
        else $folder = $b;

        $file_path = $options['LIB_DIR']."/".$folder."/".$a.".php";

        if(@!file_exists($file_path)) {

            $_criticalFiles = array("sessionService/session_loader", "databaseService/db_connection","userService/isLoggedIn");

            if(in_array($a,$_criticalFiles)) {
                die("<center><h1>Critical Error.<br />Could not find {$a}.</h1></center>");
            }

        } else {
            require_once($file_path);
        }
    }

謝謝

這是范圍問題。 您想在函數外部使用的任何在函數中創建的變量都必須global化。

對於那些想知道如何解決這個問題的人,我沒有。

相反,我將所有文件放在一個數組中,例如

$filesInclude = array("file1","file2","file3","etc");

2個用於本地和外部文件的不同數組,然后在該數組上運行一個for循環。 :)

暫無
暫無

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

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