Rumah >pembangunan bahagian belakang >tutorial php >Mengapa membahagikan 8 dengan -3 dalam PHP menghasilkan 0?
Mengapa PHP8%-3 sama dengan 0?
Dalam pengaturcaraan PHP, kadangkala kita menghadapi beberapa masalah yang pelik dan mengelirukan. Soalan yang sangat menarik ialah, mengapa ungkapan 8%-3 dalam PHP sama dengan 0?
Untuk menjawab soalan ini, mula-mula kita perlu memahami operasi modular (operasi baki) dalam PHP. Aritmetik modulo ialah operasi matematik yang digunakan untuk mengira baki selepas membahagi satu nombor dengan yang lain. Dalam PHP, tanda peratus (%) digunakan untuk mewakili aritmetik modular.
Dalam matematik, apabila baki pembahagian satu nombor dengan yang lain ialah 0, kita katakan bahawa dua nombor itu boleh dibahagi. Dalam erti kata lain, jika satu nombor boleh dibahagikan dengan nombor lain, hasil operasi modulo antara mereka akan menjadi 0.
Seterusnya, mari kita lihat mengapa keputusan PHP8%-3 ialah 0.
Pertama sekali, kita perlu memahami peraturan pemprosesan PHP untuk operasi modular. Dalam keadaan biasa, hasil aritmetik modulo mestilah integer bukan negatif. Tetapi dalam PHP, tanda baki adalah sama dengan tanda dividen. Iaitu, jika dividen positif, bakinya juga positif jika dividen negatif, bakinya juga negatif;
Dalam contoh ini, 8 ialah dividen dan -3 ialah pembahagi. Oleh kerana 8 ialah nombor positif, bakinya juga harus positif. Tetapi mengikut peraturan PHP, tanda baki adalah sama dengan tanda dividen, jadi bakinya negatif. Inilah sebabnya mengapa keputusan 8%-3 ialah -1 dan bukannya 1 biasa.
Maka persoalannya, kenapa keputusan 8%-3 bukan -1, tetapi 0?
Sebenarnya, ini kerana terdapat pengecualian kepada aritmetik modular dalam PHP. Apabila nilai mutlak dividen kurang daripada nilai mutlak pembahagi, hasil operasi modulo adalah sama dengan dividen. Dengan kata lain, keputusan 8%-3 adalah sama dengan 8. Inilah sebabnya mengapa keputusan 8%-3 ialah 0.
Keadaan ini juga boleh disahkan melalui pengiraan matematik. Kita tahu bahawa -3 membahagi 8 sekali, dengan baki 2. Mengikut peraturan PHP, tanda baki adalah sama dengan tanda dividen, jadi bakinya ialah -2. Tetapi peraturan khas dalam PHP menukar baki kepada 0, jadi hasilnya menjadi 8%3=0.
Walaupun peraturan khas ini tidak ketat secara matematik, ia membantu kami menyelesaikan beberapa kes khas dalam PHP. Dalam pengaturcaraan sebenar, kita mungkin menghadapi beberapa masalah yang perlu mempertimbangkan situasi istimewa ini. Dengan memahami peraturan ini, kami boleh menangani masalah ini dengan lebih baik dan mengelakkan ralat.
Untuk meringkaskan, sebab mengapa PHP8%-3 adalah 0 adalah kerana PHP mempunyai peraturan khas apabila berurusan dengan operasi modular Apabila nilai mutlak dividen kurang daripada nilai mutlak pembahagi, hasil operasi modular adalah sama dengan dividen. Peraturan khas ini membantu kami menyelesaikan beberapa kes khas, tetapi tidak ketat secara matematik. Memahami peraturan ini boleh membantu kami mengendalikan situasi istimewa ini dengan lebih baik dan mengelakkan ralat.
Atas ialah kandungan terperinci Mengapa membahagikan 8 dengan -3 dalam PHP menghasilkan 0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!