PHP允许类方法访问其范围之外的所有变量

时间:2020-08-28 09:05:09

标签: php class scope

我有一个定制的网站,我在其中尝试创建与Wordpress的短代码类似的系统。我有一个PHP类,该类从TinyMCE中获取一串内容,然后检查这些“短代码”是否包含方括号,然后对内部参数进行处理。

该类查看一串内容,然后将其拆分为一个关联数组。如果阵列零件处于方格状态,则它将获取参数并运行一个函数。白色将输出附加回新的单个字符串中,并在页面上回显。

短代码遵循此模式,其中insert是将要运行的变量函数名称:

[insert="functionname",param1="",param2=""]

我的功能之一只是设计为允许在网站内容中包含自定义文件:

[insert="customfile",path="pathtofile"]

protected function customfile($params) {
    if(isset($params['path'])) {
        $mysqli = $GLOBALS['mysqli'];
            
        ob_start();
            
        $path = $params['path'];
        include($_SERVER['DOCUMENT_ROOT'] . $path);
            
        $output = ob_get_contents();
            
        ob_get_clean();
            
        return $output;
    }
}

以上是我当前尝试包含文件的函数,最初我使用的是file_get_contents而不是include,但这导致php代码被写出而不是运行。

我现在遇到的问题是,如果我包含的php文件需要访问已经设置的变量,那么除非我将该变量定义为函数中的全局变量,否则它将无法执行此操作。例如mysqli连接。

我还有其他一些需要访问的变量,这些变量已在函数外部设置,但不想将所有变量都设置为全局变量,并且将来可能会增加列表。

是否有某种方式允许函数访问其作用域之外的每个变量?

0 个答案:

没有答案