Я пытаюсь сделать что-то вроде этого:
class helper { .. some class variables .. public function somehelper ($somevar) { .. some action .. } }
to – $somehelper('somevar!')
Я хочу, чтобы это была лямбда-функция без объявления новой лямбда-функции. Я хочу, чтобы код создавался автоматически. Я хочу создать эту лямбда-функцию автоматически через основной класс, который будет создан для каждой вспомогательной функции – лямбда-функции с именем функции. Я не хочу его указывать. У меня есть файл шаблона и экземпляр помощника класса. <a href..><?= $makeSeo($url); ?></a>
<a href..><?= $makeSeo($url); ?></a>
это приведет к – public function makeSeo($url)
в вспомогательном классе. autmatically.
Заранее спасибо!
Похоже, вы хотите что-то создать лямбда с именем метода? Предполагая, что методы класса «Помощник» статичны, что-то вроде этого будет делать это
function makeHelper($fn) { //note use of PHP5.3 closure syntax $helper = function($param) use ($fn) { return Helper::$fn($param); }; return $helper; } //create a new lambda $foo=makeHelper('somehelper'); //call it... $foo('Hello world);
Я думаю, вы говорите, что хотите переменную $somehelper
вызвать helper::somehelper
извне контекста класса.
$somehelper = function($somevar) { return helper::somehelper($somevar); });
Предположим, что somehelper
предназначен для статической функции (т. somehelper
Должен быть помечен как public static function
. Если это не так, вам нужно будет предоставить дополнительную информацию о том, откуда приходит экземпляр класса.