Rumah > Soal Jawab > teks badan
Hasil penilaian dalam kedua-dua java dan js ialah 5, tetapi dalam PHP ia adalah 4
Adakah kerana formula saya tidak ditulis dengan cara yang standard? Atau adakah atas sebab lain? Saya meminta orang lain untuk mencubanya menggunakan bahasa .net dan c, kedua-duanya adalah 5
[Selesai] Terima kasih atas jawapan anda, saya rasa formula itu tidak ditulis dengan cara yang standard, kerana saya selalu fikirkan bahawa ternary adalah dari Dari kanan ke kiri, jadi saya meninggalkan kurungan terakhir (saya sering menulisnya dengan cara ini sebelum ini). Demi penyeragaman, ia sepatutnya 3<8?(9<6? 7:5):(2>0?4:1 )
typecho2017-06-08 11:04:07
Masalah dengan arah gabungan pengendali ternary:
java dari kanan ke kiri. Bersamaan dengan 3<8?(9<6?7:5):(2>0?4:1)
3<8?(9<6?7:5):(2>0?4:1)
php 从做向右。等效于(3<8?(9<6?7:5):2)>0?4:1
php dari buat ke kanan. Bersamaan dengan
Oleh itu, untuk mengelakkan penjanaan kod samar-samar, adalah lebih baik untuk tidak meninggalkan tanda kurungan yang sepatutnya ditulis
过去多啦不再A梦2017-06-08 11:04:07
Tertib gabungan operasi ternary PHP adalah terbalik
http://www.jianshu.com/p/124f...
代言2017-06-08 11:04:07
Saya rasa tafsiran keutamaan php berbeza daripada java, js dan bahasa lain Ia boleh ditafsirkan sebagai (3 < 8 ? (9 < 6 ? 7 : 5) : 2 > 0) ? 4 : 1
某草草2017-06-08 11:04:07
Dalam PHP ia kelihatan seperti ini:
$a = (3 < 8 ? (9 < 6 ? 7 : 5): 2 > 0)
? 4
: 1;
Jadi 4;
Dalam JavaScript ia kelihatan seperti ini:
var a = (3 < 8)
? (9 < 6 ? 7 : 5)
: (2 > 0 ? 4 : 1);
Jadi 5.
Jadi jika anda tidak tahu keutamaan pengendali, lengkapkan kurungan. ^_^