Fungsi PHP 7.2 create_function() tidak digunakan lagi
P粉831310404
P粉831310404 2024-01-16 11:05:38
0
2
404

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粉831310404
P粉831310404

membalas semua(2)
P粉354948724

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.

P粉287726308

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]);
};
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan