Dalam pengaturcaraan, pembolehubah global dikongsi antara semua fungsi dalam atur cara. Mengubah suai pembolehubah global di dalam fungsi harus mencerminkan perubahannya sepanjang program. Walau bagaimanapun, keadaan tertentu boleh membawa kepada tingkah laku yang tidak dijangka, seperti yang diserlahkan dalam senario berikut.
Masalahnya:
Memandangkan coretan kod di bawah:
<code class="python">done = False def function(): for loop: code if not comply: done = True #let's say that the code enters this if-statement while done == False: function()</code>
Kod nampaknya cuba untuk keluar dari gelung while apabila pembolehubah yang dilakukan ditetapkan kepada True dalam fungsi. Walau bagaimanapun, isu timbul apabila function() tidak mengubah suai pembolehubah dilakukan global dengan betul, menyebabkan gelung sementara berterusan selama-lamanya.
Penyelesaian:
Masalahnya terletak pada skop fungsi. Fungsi mencipta ruang nama mereka sendiri, bermakna pembolehubah dilakukan dalam function() dicipta secara setempat dan tidak sama dengan pembolehubah dilakukan global. Untuk mengakses dan mengubah suai pembolehubah dilakukan global, kata kunci global mesti digunakan:
<code class="python">def function(): global done for loop: code if not comply: done = True</code>
Menggunakan global done memastikan bahawa perubahan pada pembolehubah dilakukan yang dibuat dalam function() mempengaruhi pembolehubah global, mencetuskan keluar dari gelung while apabila ia ditetapkan kepada Benar.
Penjelasan:
Kata kunci global digunakan untuk mengisytiharkan dan mengubah suai pembolehubah global dari dalam skop setempat, seperti fungsi . Ia membenarkan fungsi berfungsi dengan pembolehubah asal dan bukannya mencipta salinan tempatan baharu. Dengan menggunakan global done, fungsi boleh mengubah suai global done variable, menjadikan perubahannya boleh diakses di luar fungsi.
Atas ialah kandungan terperinci Mengapakah Penting untuk Menggunakan Kata Kunci Global untuk Mengubah Suai Pembolehubah Global dalam Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!