Bagaimana untuk Menetapkan Fungsi Tanpa Nama kepada Sifat Kelas dalam PHP?

Susan Sarandon
Lepaskan: 2024-10-26 13:25:02
asal
631 orang telah melayarinya

How to Assign Anonymous Functions to Class Properties in PHP?

Menetapkan Fungsi Tanpa Nama kepada Sifat Kelas dalam PHP

Dalam PHP, tidak mungkin untuk memulakan terus sifat kelas kepada fungsi tanpa nama apabila mengisytiharkannya. Coretan kod di bawah:

<code class="php">class AssignAnonFunction {
    private $someFunc = function() {
        echo "Will Not work";
    };
}</code>
Salin selepas log masuk

Menghasilkan mesej ralat "Ralat hurai: ralat sintaks, T_FUNCTION tidak dijangka." Ini kerana bahasa PHP tidak membenarkan pemulaan sifat dengan fungsi semasa fasa pengisytiharan.

Sekatan Permulaan Nilai Malar

Menurut manual PHP, sifat kelas hanya boleh dimulakan dengan nilai malar semasa pengisytiharan mereka. Nilai malar ialah nilai yang boleh dinilai pada masa penyusunan tanpa bergantung pada maklumat masa jalan. Fungsi, bagaimanapun, tidak sesuai dengan kriteria ini dan oleh itu tidak dibenarkan sebagai pemula harta semasa pengisytiharan.

Penyelesaian Menggunakan Pembina

Walaupun ketidakupayaan untuk memulakan sifat dengan fungsi tanpa nama semasa pengisytiharan, adalah mungkin untuk menetapkan fungsi kepada sifat dalam kaedah pembina. Mengubah suai kod sebelumnya kepada yang berikut membolehkan tugasan:

<code class="php">class AssignAnonFunctionInConstructor {
    private $someFunc;

    public function __construct() {
        $this->someFunc = function() {
            echo "Does Work";
        };
    }
}</code>
Salin selepas log masuk

Kaedah pembina dipanggil semasa penciptaan objek, membenarkan penugasan fungsi tanpa nama kepada harta pada masa jalan.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Fungsi Tanpa Nama kepada Sifat Kelas dalam PHP?. 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!