Mesej ralat "Tidak boleh menggunakan nilai pulangan fungsi dalam konteks tulis" menunjukkan bahawa PHP tidak dapat menetapkan nilai pulangan fungsi kepada pembolehubah atau menulisnya ke fail. Ralat ini biasanya berlaku apabila cuba menilai pengembalian fungsi secara langsung dalam pernyataan bersyarat.
Dalam contoh yang disediakan:
Ralat muncul pada baris 48, yang berbunyi:
if (isset($_POST('sms_code') == TRUE ) {...}
Di sini, PHP cuba menilai kebenaran isset($_POST('sms_code')) dan tetapkan hasilnya kepada TRUE. Walau bagaimanapun, isset() ialah binaan bahasa, bukan fungsi, dan nilai pulangannya tidak boleh digunakan dalam konteks ini.
Penyelesaian:
Untuk menyelesaikan ralat ini, tetapkan secara langsung nilai pulangan isset() kepada pembolehubah boolean:
$sms_code_exists = isset($_POST('sms_code')); if ($sms_code_exists) {...}
Tambahan Nota:
Ralat ini juga boleh berlaku apabila menggunakan binaan bahasa kosong pada nilai pulangan fungsi. Contohnya:
!empty(trim($someText)) and doSomething()
Dalam kes sedemikian, adalah betul untuk menilai nilai pulangan trim() menggunakan operator perbandingan:
trim($someText) !== '' and doSomething()
Atas ialah kandungan terperinci Mengapa PHP Melemparkan Ralat \'Tidak Dapat Menggunakan Fungsi Pulangan dalam Konteks Tulis\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!