Pengendalian Ralat PHP: Mentafsir "Tidak boleh menggunakan nilai pulangan fungsi dalam konteks tulis" Teka-teki
Mesej ralat misterius "Ralat maut : Tidak boleh menggunakan nilai pulangan fungsi dalam konteks tulis" boleh membingungkan, terutamanya apabila ia berkaitan dengan garis yang kelihatan agak mudah. Untuk membongkar ralat ini, mari kita mendalami konteks dan kod yang menyebabkan isu.
Mesej ralat menunjukkan bahawa percubaan telah dibuat untuk menetapkan nilai pulangan fungsi kepada pembolehubah dalam pernyataan if pada baris 48. Walau bagaimanapun , dalam PHP, nilai pulangan fungsi tidak boleh digunakan secara langsung dalam konteks tulis, seperti dalam pernyataan tugasan. Baris yang terjejas, "if (isset($_POST('sms_code') == TRUE ) {", menggambarkan kesilapan ini. Baris 48 cuba untuk menetapkan hasil fungsi isset(), yang mengembalikan boolean, kepada pembolehubah.
Untuk menyelesaikan isu ini, kod boleh diubah suai untuk memberikan hasil kepada pembolehubah dan kemudian menggunakan pembolehubah itu dalam keadaan if Contohnya, pengubahsuaian berikut akan kerja:
$isset_result = isset($_POST('sms_code')); if ($isset_result == TRUE) {
Sebagai alternatif, operator ternary boleh digunakan untuk memudahkan kod:
$state = $isset_result ? CORRECT_CODE : NOTHING_SUBMITED;
Selain itu, seperti yang dinyatakan dalam jawapan yang disediakan, empty() hanya boleh digunakan dengan pembolehubah dan bukan nilai pulangan fungsi Dalam kes di mana kosong() bertujuan untuk digunakan dengan nilai pulangan fungsi, fungsi trim() boleh digunakan sebagai ganti contoh:
!empty(trim($someText)) ? doSomething() : doSomethingElse();
Dengan menangani isu ini, kod akan berfungsi seperti yang diharapkan dan ralat "Tidak boleh menggunakan nilai pulangan fungsi dalam konteks tulis" tidak akan berlaku lagi.
Atas ialah kandungan terperinci Mengapa PHP Melemparkan Ralat \'Tidak boleh menggunakan nilai pulangan fungsi dalam konteks tulis\' dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!