Rumah  >  Soal Jawab  >  teks badan

Fungsi PHP 7.2 create_function() tidak digunakan lagi

Saya menggunakan create_function() dalam apl di bawah.

$callbacks[$delimiter] = create_function('$matches', "return '$delimiter' . strtolower($matches[1]);");

Tetapi setakat PHP 7.2.0, create_function() ditamatkan.

Bagaimana untuk menulis semula kod di atas untuk PHP 7.2.0?

P粉831310404P粉831310404251 hari yang lalu334

membalas semua(2)saya akan balas

  • P粉354948724

    P粉3549487242024-01-17 10:01:58

    Saya ingin menyumbang kes yang sangat mudah yang saya temui dalam tema WordPress dan ia nampaknya berfungsi dengan baik:

    Mempunyai add_filterpernyataan berikut:

    add_filter( 'option_page_capability_' . ot_options_id(), create_function( '$caps', "return '$caps';" ), 999 );

    Ganti dengan:

    add_filter( 'option_page_capability_' . ot_options_id(), function($caps) {return $caps;},999);

    Kita boleh melihat penggunaan function(), yang merupakan penciptaan fungsi yang sangat tipikal, dan bukannya menggunakan create_function() yang tidak digunakan untuk mencipta fungsi.

    balas
    0
  • P粉287726308

    P粉2877263082024-01-17 00:49:46

    Anda sepatutnya boleh menggunakan fungsi tanpa nama (aka penutupan) panggilan ke skop induk $delimiter pembolehubah seperti ini:

    $callbacks[$delimiter] = function($matches) use ($delimiter) {
        return $delimiter . strtolower($matches[1]);
    };

    balas
    0
  • Batalbalas