Setelah pencarian lengkap untuk referensi internet tentang aturan untuk melakukan tugas dalam pernyataan if. Tentang semua yang dapat saya temukan di sini adalah bahwa Anda tidak boleh, tidak pernah, tidak pernah, menggunakannya. Karena itu mengarah pada kesalahan besar dan konsekuensi drastis. Namun, saya melewati satu ton baris kode dengan beberapa paket komposer, dan tampaknya tidak terlalu disukai di sana.

Saya hanya tidak yakin apa jenis pengembaliannya agar tugas dihitung sebagai salah. Apakah itu hanya perlu nilai falsey seperti 0 atau "", atau haruskah itu seperti null? Apakah array kosong dihitung sebagai salah untuk penugasan?

EDIT: contoh

if(!$new_invoice=ConvInvoice::createNewInvoice()){
    error_log("Whoopsie!");
}
else {
    //Do processing for with invoice....
}

Di kelas ConvInvoice

public function __construct($data){

   //Data processing and record creation...

   if($record_error){
        return 0; //or null, or whatever
   }
}
php
0
IncredibleStorm 28 Februari 2020, 07:15

1 menjawab

Jawaban Terbaik

Per manual, ekspresi diubah menjadi boolean.

Saat mengonversi ke boolean, nilai berikut dianggap SALAH:

◦   the boolean FALSE itself
◦   the integers 0 and -0 (zero)
◦   the floats 0.0 and -0.0 (zero)
◦   the empty string, and the string "0"
◦   an array with zero elements
◦   the special type NULL (including unset variables)
◦   SimpleXML objects created from empty tags

Setiap nilai lainnya dianggap TRUE (termasuk sumber daya dan NAN).

Peringatan -1 dianggap BENAR, seperti angka bukan nol lainnya (baik negatif atau positif)!

0
Tim Morton 28 Februari 2020, 05:31