Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menetapkan Fungsi Tanpa Nama kepada Sifat Kelas dalam 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>
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>
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!