Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-包含没有内置变量的文件?_Php_Variables_Include_Scope - Fatal编程技术网

PHP-包含没有内置变量的文件?

PHP-包含没有内置变量的文件?,php,variables,include,scope,Php,Variables,Include,Scope,在不继承父脚本中设置的变量的情况下,是否可以在PHP脚本中包含(或运行)另一个PHP文件?我知道这是最有可能做到的,但这感觉马虎 还有更优雅的替代方案吗?将文件中的变量包括私有变量。这样,它们只包含在要从中继承函数的文件中。这是解决问题的一种更简洁的方法。不幸的是,在撰写本文时,似乎只有将要包含的内容包装到函数或方法中才能实现这一点。将include命令包装到include函数中 <?php //Führt die Cronjobs aus set_time_lim

在不继承父脚本中设置的变量的情况下,是否可以在PHP脚本中包含(或运行)另一个PHP文件?我知道这是最有可能做到的,但这感觉马虎


还有更优雅的替代方案吗?

将文件中的变量包括私有变量。这样,它们只包含在要从中继承函数的文件中。这是解决问题的一种更简洁的方法。

不幸的是,在撰写本文时,似乎只有将要包含的内容包装到函数或方法中才能实现这一点。

将include命令包装到include函数中

    <?php
    //Führt die Cronjobs aus
    set_time_limit(30);

    /** Alle Dateien mit _cronjob am schluss sollen minütlich ausgeführt werden.*/
    $files = scandir(__DIR__ ."/cronjob");

    foreach($files as $file) {
        if($file == "." || $file == "..") continue;
        include_easy(__DIR__ ."/cronjob/". $file);
    }

    //Damit die variablen nicht überschrieben werden, wird das include über eine funktion gemacht.
    function include_easy($pfad) {
        include($pfad);
    }

include将继承包含范围内的任何内容,因此将其包装到函数中才是真正的解决方案。另一个解决方案是限制在父脚本中创建的全局变量的数量。如果它们不应该在不同的include中公开,那么也许它们一开始就不应该是全局的。我实际上没有任何一组全局变量,所以将其包装在函数中可以解决问题。我只是希望它有一个更具体的功能,或者别的什么难道你不能在你要包含的文件中把它们作为类中的私有变量吗?也许你应该停止使用“面向包含的编程”并开始学习OOP。有时候,对于简单的处理脚本,面向对象编程会减慢开发过程。:)但你是对的——在大多数情况下,OOP会防止这成为一个问题。你不能将全局范围内的变量设置为私有,这没有任何意义。