Bagaimanakah saya boleh menyimpan fungsi dalam tatasusunan PHP dengan berkesan?

Linda Hamilton
Lepaskan: 2024-11-01 08:06:02
asal
938 orang telah melayarinya

How can I store functions in PHP arrays effectively?

Menyimpan Fungsi dalam Tatasusunan PHP

Timbul persoalan sama ada mungkin untuk menyimpan fungsi dalam tatasusunan PHP. Sebagai contoh, pertimbangkan perkara berikut:

$functions = [
  'function1' => function($echo) { echo $echo; }
];
Salin selepas log masuk

Adakah ini pendekatan yang berdaya maju? Jika tidak, apakah alternatif yang disyorkan?

Pendekatan Disyorkan: Fungsi Tanpa Nama

Kaedah pilihan untuk menyimpan fungsi dalam tatasusunan melibatkan penggunaan fungsi tanpa nama. Seperti contoh di atas, ia boleh ditakrifkan sebaris:

$functions = [
  'function1' => fn($echo) => $echo
];
Salin selepas log masuk

Merujuk Fungsi Luaran

Apabila berurusan dengan fungsi yang telah diisytiharkan, anda boleh merujuknya dengan nama sebagai rentetan:

<code class="php">function do_echo($echo) {
    echo $echo;
}

$functions = [
  'function1' => 'do_echo'
];</code>
Salin selepas log masuk

Kaedah Warisan (PHP < 5.3): create_function

Untuk versi lama PHP yang tidak menyokong fungsi tanpa nama, binaan create_function boleh digunakan:

<code class="php">$functions = [
  'function1' => create_function('$echo', 'echo $echo;')
];<p><strong>Memanggil Fungsi Tersimpan</strong></p>
<p>Tidak kira kaedah yang digunakan untuk menyimpan fungsi, ia boleh dipanggil terus (PHP >= 5.4) atau melalui call_user_func/call_user_func_array.</p>
<pre class="brush:php;toolbar:false"><code class="php">$functions['function1']('Hello world!');

call_user_func($functions['function1'], 'Hello world!');</code>
Salin selepas log masuk

Ringkasnya, fungsi tanpa nama ialah pendekatan yang disyorkan untuk menyimpan fungsi dalam tatasusunan PHP, dengan rujukan rentetan digunakan untuk fungsi yang telah diisytiharkan dan create_function tersedia untuk versi PHP lama.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyimpan fungsi dalam tatasusunan PHP dengan berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!