Вы знаете, как поддержка хороших Моно 2,0 предварительных просмотров для Windows Forms 2.0?
От немного, что я играл с ним, это казалось относительно завершенным и почти применимым. Это просто не вполне выглядело правильным в некоторых местах и все еще немного как попало полно. Это поразило меня, что это работало, а также это сделало с некоторыми нашими формами, хотя честно.
Я думаю, вам следует больше заботиться о ремонтопригодности, а не о производительности, особенно в такой ситуации, когда разница в производительности, вероятно, не так велика между двумя решениями, а разница в удобство обслуживания кажется важным.
Как сказал Дональд Кнут:
Мы должны забыть о небольших эффективности, говорят около 97% время: преждевременная оптимизация - это корень всех зол.
Это совершенно верно, в данной ситуации; -)
Против этого есть несколько причин:
create_function ( )
( ) или закрытие (> = PHP5.3
)
Это плохая практика. Могут произойти не только все странные вещи, и вы потеряете слишком много времени, пытаясь отладить их, но и код станет более запутанным.
Что касается производительности, я не совсем уверен в этом. Все, что я знаю, это то, что если вы определите функцию внутри другой, эта последняя функция будет существовать только при вызове внешней. Это может немного облегчить память. Но я считаю, что выигрыш несущественен.
Очень распространенный способ - определить функцию вне этой функции и вызвать ее внутри.
Это зависит от ситуации, так как это может быть более желательно, чем использование create_function ()
. Однако вы должны знать, что функция, которая создается внутри функции, имеет глобальную область видимости.
function creator() {
function inside() {
echo "hi.";
}
}
creator();
inside();
Будет выведено «привет». даже несмотря на то, что функция inside ()
была создана «внутри» функции-создателя. Поэтому, если у вас есть функция в цикле, который создает функцию, вам нужно проверить, существует ли функция, иначе это вызовет ошибку функция существует
после первого цикла.
inside ()
была создана «внутри» функции-создателя. Поэтому, если у вас есть функция в цикле, который создает функцию, вам нужно проверить, существует ли функция, иначе это вызовет ошибку функция существует
после первого цикла. даже несмотря на то, что функция inside ()
была создана «внутри» функции-создателя. Поэтому, если у вас есть функция в цикле, который создает функцию, вам нужно проверить, существует ли функция, иначе это вызовет ошибку функция существует
после первого цикла.