PHP, эквивалентный для декоратора Python?

Простой ответ не, нет ничего встроенного.

, Но осуществимое решение должен был бы использовать плагин как превосходное BufExplorer. Так как это принимает значение по умолчанию к списку последний раз используемых буферов сначала, вновь открывание закрытой вкладки было бы так же просто как нажатие \bet

11
задан Fragsworth 15 September 2009 в 06:01
поделиться

3 ответа

Очевидно runkit может помочь вам .

Кроме того, вы всегда можете сделать это объектно-ориентированным способом. Поместите исходное развлечение в класс, а декоратор - в расширенный класс. Создайте экземпляр и вперед.

8
ответ дан 3 December 2019 в 08:56
поделиться

возможно вы ищете call_user_func_array :

function wrapA() {
  $args = func_get_args();
  return call_user_func_array('A', $args);
}

начиная с PHP 5.3 вы даже можете сказать:

return call_user_func_array('A', func_get_args());

после того, как вы отредактировали свой вопрос, я бы сказал, нет , это невозможно, но есть несколько способов, см. этот вопрос: как реализовать декоратор в PHP?

1
ответ дан 3 December 2019 в 08:56
поделиться

Вы не можете сделать это с помощью функций в PHP. В других динамических языках, таких как Perl и Ruby, вы можете переопределить ранее определенные функции, но PHP выдает фатальную ошибку, когда вы пытаетесь это сделать.

В версии 5.3 вы можете создать анонимную функцию и сохранить его в переменной:

<?php
    $my_function = function($args, ...) { ... };
    $copy_of_my_function = $my_function;
    $my_function = function($arg, ...) { /* Do something with the copy */ };
?>

В качестве альтернативы,

1
ответ дан 3 December 2019 в 08:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: