Можно ли автозагружать функции?
То, что у меня есть, это то, что я написал функции, распределенные по разным файлам, названным после имени функции, поэтому мне нужно автоматически загрузить файл, содержащий эту функцию. Есть какой-либо способ сделать это?
Вы можете автоматически загружать классы , поэтому, если вы создадите свои функции статические методы классов, то это сработает.
abstract class Util { static function doSomething() { } }
Применение:
Util::doSomething();
Использование:
include("path");
или
require_once("path");
Рекомендации:
Нет, но вы можете загружать классы. используя __autoload($className)
Хотя это не разумно, это возможно.
Вы можете сохранить эти функции в файле и добавить этот файл во все запрошенные скрипты:
Но разумным решением OOP было бы сгруппировать эти функции в классы и использовать __autoload
или какой-то фреймворк-автозагрузчик, такой как Zend_Autloader
чтобы ускорить работу и загрузить только те функции, которые вам нужны.
Не напрямую. Но вы можете добавить следующий код в начало своего кода, чтобы автоматически включать функции:
call_user_func(function($p,$w){$c=file_get_contents(__FILE__);$fs=explode('(',$c);$f=[];for($i=65;$i<=90;$i++){$vc[chr($i)]=1;$vc[chr($i+32)]=1;if($i<75)$vc[chr($i-17)]=1;}$vc['_']=1;foreach($fs as $fn){$fn=rtrim($fn);for($i=strlen($fn)-1;$i>=0;$i--){if(!isset($vc[$fn[$i]])){$f[]=substr($fn,$i+1);break;}}}foreach($f as $c){@include_once($p.$w[0].$c.$w[1]);}}, "func_dir/",["func_",".php"]);
Единственное, что вам нужно изменить, это вторая строка: Первый параметр – это папка для поиска файлов, второй параметр – это массив, который обертывает оба значения вокруг имени функции.
Например: если ваши файлы функций находятся в подкаталоге «func_dir /» и являются namen «func _ *. Php» (где * – имя функции), вы можете использовать вышеуказанный код непосредственно как есть. Однако вы должны поместить этот код в каждый файл, где вы хотите автоматически загружать функции и адаптировать путь.
Это немного грязно, но это работает. Надеюсь, мой код поможет вам.