Halo, selamat datang kembali.
Dalam kuliah ini, saya ingin berbicara tentang variabel lokal dan global.
Ini benar-benar konsep fungsi lingkup atau dalam lingkup program secara umum.
Ini ada hubungannya dengan kapan Anda dapat menggunakan variabel dan ketika
Anda tidak dapat menggunakannya.
Kita tahu apa fungsinya.
Jadi sekarang saya ingin bicara tentang variabel lokal.
Variabel lokal benar-benar harus dilakukan dengan lebih dari sekedar fungsi sekalipun.
Variabel lokal ada hubungannya dengan apa pun yang memiliki blok kode.
Jadi variabel didefinisikan di dalam dari suatu fungsi dikenal
sebagai variabel lokal otomatis.
Jadi dalam fungsi tubuh itu, di antara kurung awal dan
akhir itu, jika Anda mendeklarasikan variabel, itu variabel adalah variabel lokal.
Itu akan dibuat secara otomatis setiap kali fungsi dipanggil.
Juga, nilai apa pun dalam akses ke variabel itu hanya
lokal ke fungsi.
Anda tidak dapat mengakses variabel itu di luar fungsi itu.
Jadi variabelnya tidak bisa diakses di fungsi lain jika itu
lokal untuk fungsi tertentu.
Ini hanya dapat diakses dari mana itu didefinisikan.
Jika nilai awal diberikan ke variabel di
dalam suatu fungsi, nilai awalnya adalah ditugaskan ke variabel setiap
kali fungsi dipanggil.
Jika Anda ingin mempertahankan nilai dalam variabel setiap panggilan berikutnya, sebenarnya ada cara
Anda bisa melakukannya di c, itu disebut disebut sebagai variabel
statis di dalam suatu fungsi.
Itu, sekali lagi, lebih canggih konsep bukan di kelas
pemula, tetapi ini adalah cara yang Anda bisa sebenarnya memiliki data
yang berbeda setiap kali Anda menjalankan fungsi.
Jadi jika Anda ingin misalnya tetap penghitung berapa kali suatu fungsi dipanggil, Anda
akan mendeklarasikan a variabel lokal di dalam nama fungsi itu
static, dengan kata kunci static.
Tapi tanpa hanya biasa variabel lokal akan memiliki
nilai baru setiap saat.
Anda dapat menggunakan kata kunci otomatis sebelumnya tipe data, tapi itu tidak perlu.
Itu membuatnya menjadi sedikit lebih tepat.
Kompiler akan menambahkannya dengan default jika Anda tidak memasukkannya.
Tetapi jika Anda memasukkannya, itu hanya
akan membuatnya lebih tepat, itu tidak perlu.
Jadi itu disebut variabel lokal otomatis.
Ada kata kunci bernama auto di c, tetapi Anda tidak perlu menyediakannya
secara default, dan itulah sebabnya Anda tidak melihatnya dalam banyak contoh di
mana variabel didefinisikan dan dideklarasikan di dalam suatu fungsi.
Variabel lokal juga berlaku untuk kode apa pun di mana variabel dibuat
dalam blok, loop, atau pernyataan if.
Sekali lagi, jika Anda memiliki pernyataan if di apa blok untuk pernyataan if, itu hanya
di mana tanda kurung dimulai.
Itu disebut sebagai blok.
Blok bisa di fungsi, blok bisa jika pernyataan, blok
bisa di loop.
Blok bisa di mana saja itu ada tanda kurung, pada dasarnya.
Di mana saja ada tanda kurung dan Anda membuat variabel itu.
Pembuatan variabel dideklarasikan itu dan mungkin memberikan nilai padanya.
Tetapi jika Anda mendeklarasikan variabel itu, Anda membuat variabel itu
di dalam blok, Anda hanya bisa menggunakan variabel itu di dalam blok.
Jika Anda mencoba mengaksesnya variabel di luar blok, itu tidak
akan digunakan.
Jadi jika Anda memiliki pernyataan if, di dalam pernyataan
if Anda mendeklarasikan variabel, Anda dapat mengakses variabel itu di luar blok
pernyataan if, sama dengan loop.
Ini sangat penting untuk memahami ini.
Kompiler akan mengeluh dan memberi Anda kesalahan jika Anda
mencoba mengaksesnya di tempat lain.
Dan apa artinya ini adalah nilai dalam data hanya
berlaku untuk blok itu.
Anda tidak membagikan data apa pun.
Variabel global adalah kebalikan dari variabel lokal.
Variabel global dapat diakses oleh fungsi apa pun dalam program.
Cara Anda membuat global variabel adalah Anda hanya meletakkannya di atas di
luar fungsi apa pun.
Jadi variabel global dideklarasikan di luar fungsi dan mereka tidak termasuk
dalam fungsi apa pun.
Ingat, kata kunci utama utama adalah fungsi.
Jadi setiap variabel yang didefinisikan dalam fungsi utama hanya dapat
diakses di fungsi utama.
Jadi variabel di main fungsi tidak dapat diakses di
fungsi lainnya.
Jika Anda menginginkan variabel itu digunakan oleh semua fungsi, Anda meletakkan variabel
di luar fungsi, biasanya di bagian atas file
sumber dan biasanya menandainya sebagai mengatakan ini adalah variabel global.
Variabel global adalah kebohongan untuk keseluruhan program dari saat program dimulai
hingga kapan berhenti, variabel global itu akan ditempatkan
di memori.
Setiap fungsi dalam program dapat ubah nilai variabel global itu karena mereka memiliki mengaksesnya, mereka
dapat memodifikasinya.
Jadi kamu harus mulai berpikir tentang wow itu sepertinya agak berbahaya karena sekarang kamu punya kode
yang dapat mengakses data yang sama di mana
saja, tetapi kita akan membahasnya.
Jika ada variabel lokal yang dideklarasikan dalam
fungsi dengan nama yang sama dengan variabel global, maka fungsi akan menggunakan variabel lokal, itu akan
menutupi variabel global.
Jadi jika Anda memiliki variabel global bernama x dan Anda memiliki
variabel lokal bernama x di dalam suatu fungsi, lokal variabel akan diutamakan.
Itu tidak akan dimodifikasi data variabel global.
Jika Anda menetapkan untuk itu variabel, itu
hanya akan mengubah variabel lokal.
Jadi variabel globalnya bukan dapat diakses ketika Anda memiliki nama
yang sama, dan sebenarnya tidak diakses dalam fungsi lokal itu, jadi jangan
gunakan yang sama nama pada dasarnya karena itu hanya
akan membingungkan.
Untuk orang yang telah memprogram banyak, programmer tingkat lanjut mereka
segera menyadari hal ini.
Mereka akan mengatakan hei ini saja bertindak itu hanya memodifikasi variabel
lokal bahkan jika mereka melihat a kata kerja global dengan nama yang sama.
Tapi untuk pemula, itu tidak selalu sangat jelas.
Biarkan saya memberi Anda sebuah contoh.
Di sini, dalam contoh ini, kami membuat variabel global di
bagian paling atas sebelum fungsi utama.
Dan cara Anda ingin mengatur program Anda biasanya meminta Anda memasukkan
pernyataan di atas setelah beberapa komentar mungkin, dan kemudian Anda mungkin memiliki beberapa konstanta yang
ditentukan dan kemudian Anda akan memiliki variabel global Anda.
Variabel global terlihat adil seperti variabel biasa.
Itu hanya di mana mereka berada sebenarnya dideklarasikan.
Jika mereka dinyatakan di luar fungsi, maka mereka global.
Jadi dalam contoh ini, kita memiliki variabel global yang disebut my global.
Kami menginisialisasi ke 0.
Kami juga dapat menginisialisasi ini variabel global di mana saja.
Kita dapat menginisialisasinya ketika kami mendeklarasikannya atau kami dapat
menginisialisasinya dalam fungsi apa pun.
Ini adalah bilangan bulat.
Kami juga memiliki dua fungsi, fungsi utama dalam fungsi
yang disebut fungsi saya.
Di dalam sana, kami memiliki lokal variabel yang hanya dapat
diakses di dalam fungsi tersebut.
Dalam fungsi utama, kami memiliki utama lokal saya.
Anda hanya dapat mengakses lokal saya utama di dalam fungsi utama.
Tetapi karena global saya adalah variabel itu global, Anda juga dapat mengaksesnya
di fungsi utama.
Jadi yang utama dapat mengakses dua variabel, lokal dan global.
Dan fungsi saya memiliki variabel lokal bernama x karena dideklarasikan di
dalam tanda kurung badan fungsi dan kami benar-benar dapat mengakses variabel global yang
merupakan global saya.
Kami juga dapat mengakses x, tetapi kami tidak dapat mengakses lokal saya.
Utama lokal saya harus saya katakan.
Karena induk lokal saya hanya di dalam fungsi utama.
Kami tidak memiliki akses ke sana.
Jika kita mencoba untuk menulis atau membaca variabel utama lokal di
dalam fungsi saya, kompilernya adalah akan memberi Anda kesalahan.
Anda perlu memahami ini konsep lokal versus global.
Lokal berada di dalam blok kode.
Ketika mereka dideklarasikan, Anda bisa hanya menggunakannya di blok.
Jika sebuah variabel berada di luar blok dan itu hanya dalam suatu fungsi atau hanya dalam
program itu sendiri, Anda dapat mengaksesnya dalam fungsi apa pun.
Variabel global harus dihindari.
Variabel global adalah semacam hal yang buruk.
Alasan mereka untuk global variabel menjadi buruk dan mengapa Anda
harus menghindarinya adalah karena itu mempromosikan kopling antar fungsi.
Apa yang dimaksud dengan kopling?
Coupling berarti ketergantungan.
Jika Anda memiliki variabel global dan itu digunakan
oleh empat fungsi, itu berarti masing-masing fungsi fungsi tersebut dapat
bergantung pada fungsi lainnya.
Apa yang salah dengan ketergantungan?
Ketergantungan menyebabkan program menjadi jauh lebih sulit untuk men-debug dan menemukan kesalahan.
Jika Anda memiliki bug di program Anda dan Anda menggunakan variabel
global dan variabel global menyebabkan bug, sekarang bug itu bisa di mana saja
dalam fungsi apa pun itu menggunakan variabel global itu.
Ini memperumit banyak hal ketika Anda memiliki data global.
Anda memiliki variabel global, itu bisa dimodifikasi dalam fungsi satu, fungsi
dua, fungsi tiga, fungsi empat.
Anda tidak membatasi akses untuk itu. Ini juga sangat sulit setelah Anda menemukan
kesalahan dan Anda mengisolasinya, mungkin akan sangat
sulit untuk memperbaikinya.
Karena sekarang ketika Anda memperbaikinya, Anda mungkin menyebabkan masalah dalam fungsi
lain karena ketergantungan ini.
Variabel global seharusnya dihindari sebisa mungkin karena
kopling ini, karena ketergantungan ini.
Ada kalanya Anda mungkin membutuhkan menggunakannya, tetapi Anda harus menghindarinya.
Dan yang paling diingat bahasa modern di sebagian besar bahasa
berorientasi objek seperti c++ dan Java, bahkan tidak memiliki
konsep variabel global.
Mereka memiliki variabel statis yang bisa menjadi variabel kelas, tetapi mereka
masih dienkapsulasi di dalam kelas.
Karena data global seperti itu hal yang buruk, bahasa baru
sebenarnya mencoba untuk melarang.
Dan Anda harus mencoba untuk menghindari itu karena itu hanya
memperumit program Anda dan membuatnya lebih sulit untuk menemukan dan men-debug kesalahan.
Alih-alih menggunakan global data, meneruskan data ke fungsi.
Jika suatu fungsi membutuhkan akses ke beberapa data, berikan padanya.
Jika -- jika banyak data dan Anda tidak ingin memiliki banyak parameter, secara teori,
Anda seharusnya tidak pernah benar-benar memiliki lebih dari lima parameter.
Ada buku bagus di luar sana yang disebut Kode bersih yang berbicara tentang
kualitas kode dan hal-hal yang harus dihindari hal-hal yang harus dihindari seperti variabel global.
Ini juga berbicara tentang bagaimana banyak parameter yang harus Anda
miliki di functions.php Anda.
Dan jika suatu fungsi memiliki 20 parameter, itu indikasi ada yang
salah, terutama karena fungsi itu mungkin melakukan terlalu banyak.
Tetapi suatu fungsi dapat memiliki akses ke data dengan hanya meneruskan data ke sana dan Anda dapat
membatasi penggunaan data global.
Dan untuk fungsi yang membutuhkan banyak data, Anda dapat
menggunakan sesuatu yang disebut struct yang belum kita bicarakan tapi itu cara lain untuk melakukannya.
Jadi jangan terlalu sering menggunakan data global mungkin hanya bila diperlukan.
Pastikan Anda memahami kodenya.
Pastikan Anda mendokumentasikan itu benar-benar baik.
Sehingga orang lain mencari di kode segera tahu
bahwa Anda menggunakan data global dan tahu bagaimana semuanya bekerja.
Ini adalah konsep ruang lingkup fungsi.
Anda harus memahami ini, jadi perhatikan semua slide ini.
Dan juga kami akan menggunakan beberapa data global dan beberapa data
lokal dalam tantangan kami berikutnya. Terima kasih.