Как реорганизовать create_function() для перехода на PHP 7.2

#php

#php

Вопрос:

У меня возникла небольшая проблема с удалением одной create_function () на моем сайте для перехода на PHP 7.2. Я никоим образом не программист, но поскольку это единственная строка, которая создает проблему на всем сайте, я подумал, что мог бы решить ее .. но, похоже, я не в состоянии! Это эта строка кода :

 else {
    $products_per_page = ot_get_option('shop_product_count', 12);
    add_filter( 'loop_shop_per_page', create_function( '$cols', 'return ' . $products_per_page . ';' ), 20 );
}
  

Я пробовал это

 else {
  $products_per_page = ot_get_option('shop_product_count', 12);
    add_filter( 'loop_shop_per_page', function($cols) {
        return '$products_per_page';}, 20  );
    }
  

И пока мой сайт запущен, количество продуктов на страницу, заданное редактором бэкэнд-кода моего сайта, не применяется. На странице отображается количество из 10 продуктов (понятия не имею, почему 10), а не количество, указанное в серверном редакторе. Есть идеи, почему?

Комментарии:

1. удалите одинарные кавычки вокруг переменной. измените return '$products_per_page'; на return $products_per_page;

Ответ №1:

Попробуйте это:

 function ($cols) use ($products_per_page) {
    return $products_per_page;
}
  

Комментарии:

1. Большое спасибо! Это идеально.

2. Мне это доставляет удовольствие.

3. Более подробно в анонимном руководстве , пример # 3