Php semua variabel. Variabel dalam PHP

variabel php adalah semacam wadah informasi yang dapat berisi berbagai jenis data (teks, angka, array, dan sebagainya). Secara umum, variabel memungkinkan Anda untuk membuat, menyimpan, memodifikasi, dan di masa mendatang dengan cepat mengakses informasi yang ditentukan di dalamnya.

Cara membuat variabel di PHP

Awalnya, variabel mengandung tanda $ (dolar) - penunjukan penggunaan variabel, lalu huruf alfabet latin(dari a sampai z dan kecil dan besar), pada akhirnya dapat berisi angka... Juga, nama diperbolehkan untuk menggunakan garis bawah (bukan di akhir).

Bagaimana Anda bisa memberi nama variabel:

$ var
$ variabel
$ tahun1945
$ _variabel
Bagaimana variabel tidak bisa dipanggil:

$1 - hanya terdiri dari satu digit
$ 1var - Anda tidak dapat memulai nama variabel dengan angka
$ / var - hanya garis bawah yang diperbolehkan untuk karakter tambahan _
$ variabel - Cyrillic diizinkan oleh dokumentasi php, tetapi tidak disarankan
$ var iable - spasi tidak dapat digunakan

Setiap variabel diberi nilai. Untuk menetapkan nilai, gunakan tanda = (sama). Selama pemrosesan skrip, nilai variabel dapat berubah berulang kali tergantung pada kondisi yang berbeda.

$ kota = "Moskow"; // variabel $ city diberi nilai string (dalam tanda kutip) Moskow
$ tahun = 1147; // dan variabel $ year diberi nilai numerik 1147
?>

$nama = "Aleksander";
$Nama = "Alexey";
echo "$nama,$nama"; // menampilkan "Alexander, Alexey"
?>

Output Variabel PHP

Secara terpisah, Anda harus mempertimbangkan cara menampilkan variabel menggunakan operator keluaran, pekerjaan yang kita bahas di pelajaran terakhir, Membuat halaman PHP. Operator keluaran. ... Di bawah ini adalah beberapa contoh ilustrasi dengan komentar.

// Beginilah cara kami menetapkan nilai ke variabel
$nama1 = "Alexey";
$nama2 = "Alexander";

// Menampilkan variabel
echo $nama2; // Keluaran: Alexander
echo "nama1 adalah $nama1"; // nama1 adalah Alexey

// Saat menggunakan tanda kutip tunggal, outputnya adalah
// nama variabel, bukan nilai
echo "nama1 adalah $nama1"; // mencetak: nama1 adalah $ nama1

// Anda bisa menampilkan nilai variabel
echo $nama1; // Alexey
echo $nama1, $nama2; // Alexey Alexander
echo $nama1. "".$nama2; // Alexey Alexander
echo "$nama1,$nama2"; // Alexey, Alexander

Gema<<Ini menggunakan sintaks "di sini dokumen" untuk menghasilkan
beberapa baris dengan substitusi variabel $.
AKHIR;

Operasi Variabel PHP

Operasi aritmatika di PHP
Dalam hal nilai numerik, Anda dapat melakukan operasi aritmatika: penambahan, pengurangan, perkalian, dan sebagainya.

- $ a(negasi) Ubah tanda $ a.
$a + $b(penambahan) Jumlah $a dan $b.
$a - $b(pengurangan) Selisih antara $ a dan $ b.
$a * $b(perkalian) Hasil kali $a dan $b.
$a / $b(pembagian) Hasil bagi dari $a dibagi dengan $b.
$ a% $ b(pembagian modulo) Sisa bilangan bulat dari $ a dibagi $ b.
Mari kita lihat contohnya

$a = 2; // perhatikan, dalam hal angka, tanda kutip tidak digunakan
$b = 3; // perhatikan, dalam hal angka, tanda kutip tidak digunakan

$hasil = $a + $b; // tambahkan variabel
echo $hasil; // akan mencetak 5

$hasil = $b - $a; // tambahkan variabel
echo $hasil; // akan menghasilkan 1

Operasi penambahan dan pengurangan di PHP
Operasi ini akan berguna terutama saat membuat loop, yang akan kita bicarakan nanti.
Awalan- operator ditulis SEBELUM variabel ( - $ a; ++ $ a). Mengembalikan nilai variabel sebelum perubahan.
Postfix- operator ditulis setelah variabel ( $ a--; $ a--). Mengembalikan nilai variabel yang dimodifikasi.
Kenaikan- meningkatkan nilai.
Pengurangan- menurunkan nilainya.

++ $ a Peningkatan awalan. Menaikkan $ a per satu dan mengembalikan $ a.
$a++ Kenaikan postfix. Mengembalikan nilai $a dan kemudian menambah $a per satu.
- $ a Penurunan awalan. Mengurangi $a satu per satu dan mengembalikan nilai $a.
$ a-- pengurangan setelah perbaikan. Mengembalikan nilai $a dan kemudian mengurangi $a per satu.
gema "

Kenaikan setelah perbaikan

";
$a = 5;
echo "Seharusnya 5". $a++. "\ n";

gema "

Peningkatan awalan

";
$a = 5;
echo "Seharusnya 6". ++$a. "\ n";
echo "Seharusnya 6". $ a. "\ n";

gema "

Penurunan setelah perbaikan

";
$a = 5;
echo "Seharusnya 5". $a--. "\ n";

gema "

Penurunan awalan

";
$a = 5;
echo "Seharusnya 4". - $a "\ n";
echo "Seharusnya 4". $ a. "\ n";
?>

Operasi penugasan PHP
Operator dasar seperti = ... Sepintas, operator ini mungkin terlihat sama. Faktanya, ini tidak terjadi. Akibatnya, operator penugasan berarti bahwa operan kiri diberi nilai ekspresi kanan, (yaitu, ditetapkan oleh nilai yang dihasilkan). Operator gabungan- ini adalah operator yang memungkinkan Anda menggunakan nilai variabel sebelumnya untuk operasi selanjutnya (menambahkan variabel string (dengan teks) atau menambahkan nilai numerik).

$a = ($b = 2) + 4; // hasil: $ a diatur ke 6, $ b diatur ke 2.

$a = 2;
$a + = 3; // set $ a ke 5, mirip dengan penulisan: $ a = $ a + 3;
$b = "Halo";
$b. = "Dunia!"; // set $ b ke "Hello World!" seperti halnya $ b = $ b. "Di sana!";

Ada juga operasi perbandingan dan asah otak, tapi kita akan membicarakannya di pelajaran berikutnya. Saya akan mencoba untuk tidak menakut-nakuti Anda dengan sejumlah besar informasi segera!)

Pelajaran ini mengeksplorasi ruang lingkup variabel PHP. Menjelaskan perbedaan antara cakupan lokal dan global, menunjukkan cara mengakses variabel global dalam suatu fungsi, cara bekerja dengan superglobal, dan cara membuat variabel statis.

Saat Anda mulai belajar PHP dan mulai bekerja dengan fungsi dan objek, ruang lingkup variabel agak membingungkan. Untungnya, aturan PHP dalam hal ini sangat mudah dipahami (dibandingkan dengan bahasa pemrograman lain).

Apa itu ruang lingkup?

Lingkup variabel adalah konteks di mana variabel didefinisikan dan di mana ia dapat diakses. PHP memiliki dua cakupan variabel:

  • Global- variabel dapat diakses di mana saja dalam skrip
  • Lokal- variabel hanya dapat diakses di dalam fungsi di mana mereka didefinisikan

Cakupan variabel, dan terutama cakupan lokal, mempermudah pengelolaan kode Anda. Jika semua variabel bersifat global, maka variabel tersebut dapat diubah di mana saja dalam skrip. Ini akan menyebabkan kekacauan dan skrip besar, karena sangat sering bagian yang berbeda dari skrip menggunakan variabel dengan nama yang sama. Dengan melingkupi konteks lokal, Anda menentukan batas kode yang dapat mengakses variabel, membuat kode lebih kuat, modular, dan lebih mudah untuk di-debug.

Variabel yang memiliki cakupan global disebut global, dan variabel yang memiliki cakupan lokal disebut lokal.

Berikut adalah contoh cara kerja variabel global dan lokal.

";) sayHello(); echo" Nilai \ $ globalName: "$ globalName"
"; echo" Nilai \ $ localName: "$ localName"
"; ?>

Hai Harry! $ nilai GlobalName: "Zoe" $ nilai localName: ""

Dalam skrip ini, kami telah membuat dua variabel:

  • $ globalName- ini global variabel
  • $ nama lokal- ini lokal variabel yang dibuat di dalam fungsi sayHello().

Setelah membuat variabel dan fungsi, skrip memanggil sayHello (), yang menampilkan "Hello Harry!" ... Script kemudian mencoba untuk menggemakan nilai dari kedua variabel tersebut. Inilah yang terjadi:

  • Karena $ globalName dibuat di luar fungsi, tersedia di mana saja di skrip, jadi "Zoya" ditampilkan.
  • $ nama lokal hanya akan tersedia di dalam fungsi sayHello (). Karena ekspresi gema berada di luar fungsi, PHP tidak mengizinkan akses ke variabel lokal. Sebaliknya, PHP mengasumsikan bahwa kode tersebut akan membuat variabel baru bernama $ localName, yang akan menerima nilai default dari string kosong. inilah mengapa panggilan kedua ke echo mencetak nilai "" untuk variabel $ localName.

Mengakses variabel global di dalam suatu fungsi

Untuk mengakses variabel global tidak berfungsi tulis saja namanya. Tetapi untuk mengakses variabel global fungsi dalam, Anda harus terlebih dahulu mendeklarasikan variabel sebagai global dalam fungsi menggunakan kata kunci global:

Fungsi myFunction() (global $ globalVariable; // Akses ke variabel global $ globalVariable)

Jika tidak, PHP mengasumsikan bahwa Anda membuat atau menggunakan variabel lokal.

Berikut adalah contoh skrip yang menggunakan variabel global di dalam suatu fungsi:

"; global $ globalName; echo" Halo $ globalName!
";) sayHalo();?>

Saat dijalankan, skrip akan menampilkan:

Hai Harry! Hai Zoya!

Fungsi sayHello() menggunakan kata kunci global untuk mendeklarasikan variabel $ globalName sebagai global. Kemudian dia dapat mengakses variabel dan menampilkan nilainya ("Zoya").

Apa itu superglobal?

PHP memiliki satu set khusus array global yang telah ditentukan sebelumnya yang berisi berbagai informasi. Array seperti itu disebut superglobal, karena mereka dapat diakses dari mana saja dalam skrip, termasuk ruang fungsi dalam, dan tidak perlu didefinisikan menggunakan kata kunci global.

Berikut adalah daftar superglobal yang tersedia di PHP 5.3:

  • $ GLOBALS - daftar semua variabel global dalam skrip (tidak termasuk superglobal)
  • $ _GET - Berisi daftar semua bidang formulir yang dikirimkan oleh browser menggunakan permintaan GET
  • $ _POST - berisi daftar semua bidang formulir yang dikirimkan oleh browser menggunakan permintaan POST
  • $ _COOKIE - berisi daftar semua cookie yang dikirim oleh browser
  • $ _REQUEST - berisi semua kombinasi kunci / nilai yang terdapat dalam array $ _GET, $ _POST, $ _COOKIE
  • $ _FILES - berisi daftar semua file yang dimuat oleh browser
  • $ _SESSION - memungkinkan Anda untuk menyimpan dan menggunakan variabel sesi untuk browser saat ini
  • $ _SERVER - berisi informasi tentang server, seperti nama file skrip yang sedang dieksekusi dan alamat IP browser.
  • $ _ENV - Berisi daftar variabel lingkungan yang diteruskan ke PHP, misalnya variabel CGI.
Misalnya, Anda dapat menggunakan $ _GET untuk mendapatkan nilai variabel yang disertakan dalam string URL permintaan skrip, dan menampilkannya di halaman:

Jika Anda menjalankan skrip di atas dengan string URL http://www.example.com/script.php?yourName=Fred, itu akan menampilkan:

Hai Fred!

Sebuah peringatan! Dalam skrip nyata, Anda tidak boleh menggunakan transfer data seperti itu karena keamanan yang lemah. Anda harus selalu memeriksa atau memfilter data Anda.

Superglobal $ GLOBALS sangat nyaman digunakan karena memungkinkan Anda untuk mengatur akses ke variabel global dalam suatu fungsi tanpa perlu menggunakan kata kunci global. Sebagai contoh:

";) sayHello(); // Keluaran" Halo, Zoe! "?>

Variabel statis: mereka berada di suatu tempat di dekatnya

Saat Anda membuat variabel lokal di dalam suatu fungsi, variabel itu hanya ada saat fungsi sedang berjalan. Ketika fungsi berakhir, variabel lokal menghilang. Ketika fungsi dipanggil lagi, variabel lokal baru dibuat.

Ini bekerja sangat baik dalam banyak kasus. Dengan cara ini fungsinya mandiri dan selalu bekerja sama setiap kali dipanggil.

Namun, ada situasi di mana akan lebih mudah untuk membuat variabel lokal yang "mengingat" nilainya di antara pemanggilan fungsi. Variabel seperti itu disebut statis.

Untuk membuat variabel statis dalam suatu fungsi, Anda harus menggunakan kata kunci statis di depan nama variabel dan pastikan untuk memberikan nilai awal. Sebagai contoh:

Fungsi myFunction () (statis $ myVariable = 0;)

Mari kita pertimbangkan situasi ketika nyaman untuk menggunakan variabel statis. Katakanlah Anda membuat fungsi yang, ketika dipanggil, membuat widget dan menampilkan jumlah widget yang sudah dibuat. Anda dapat mencoba menulis kode seperti ini menggunakan variabel lokal:


"; echo createWidget()." sudah kita buat.
"; echo createWidget()." sudah kita buat.>
"; ?>

Tapi, karena variabel $ numWidgets dibuat setiap kali fungsi dipanggil, kita akan mendapatkan hasil sebagai berikut:

Kami membuat beberapa widget ... 1 yang telah kami buat. 1 yang sudah kita buat. 1 yang sudah kita buat.

Tetapi menggunakan variabel statis, kita dapat menyimpan nilai dari satu pemanggilan fungsi ke pemanggilan fungsi berikutnya:

"; echo createWidget()." sudah kita buat.
"; echo createWidget()." sudah kita buat.
"; echo createWidget()."> sudah kita buat.
"; ?>

Script sekarang akan menghasilkan output yang diharapkan:

Kami membuat beberapa widget ... 1 yang telah kami buat. 2 yang sudah kita buat. 3 yang sudah kita buat.

Meskipun variabel statis mempertahankan nilainya di antara pemanggilan fungsi, variabel ini hanya valid pada saat skrip dieksekusi. Segera setelah skrip menyelesaikan eksekusinya, semua variabel statis dihancurkan, serta variabel lokal dan global.

Itu saja! Periksa dokumentasi PHP sering.

Variabel lingkungan (environment) di Windows berisi berbagai informasi tentang pengaturan sistem dan lingkungan pengguna. Bedakan antara variabel pengguna, sistem, dan lingkungan proses.

Cara termudah untuk melihat konten variabel lingkungan di Windows adalah dengan membuka properti sistem ( sysdm.cpl) -> Lanjutan -> Variabel Lingkungan. Seperti yang Anda lihat, di bagian yang terbuka ada dua bagian: bagian atas berisi variabel lingkungan pengguna, bagian bawah berisi variabel sistem.

Selain itu, variabel lingkungan disimpan dalam registri sistem. Variabel khusus disimpan di bagian. Sistem - dalam HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment.

Anda dapat menampilkan nilai semua variabel lingkungan di baris perintah Windows. Perintahnya sederhana:

Perintah akan mencantumkan variabel lingkungan dan nilainya.

Di PowerShell, Anda dapat menggunakan perintah untuk menampilkan semua variabel lingkungan:

Jika Anda ingin menampilkan nilai hanya satu variabel, Anda perlu menggunakan perintah echo, dan nama variabel harus diapit tanda persen. Sebagai contoh,

Echo% root sistem%

set> c: \ tmp \ env_var.txt

Variabel lingkungan dari proses tertentu dapat diperoleh dengan menggunakan free Utilitas Penjelajah Proses(dari Sysinternals). Cukup membuka properti proses dan pergi ke tab Lingkungan.

13 tahun yang lalu

Sedikit gotcha yang harus diperhatikan:

Jika Anda mematikan RegisterGlobals dan yang terkait, lalu gunakan get_defined_vars(), Anda mungkin melihat sesuatu seperti berikut:

Himpunan
[GLOBALS] => Array
[GLOBALS] => Array
* PENGULANGAN *
[_POST] => Array ()
[_GET] => Array ()
[_COOKIE] => Array ()
[_FILES] => Array ()
)

[_POST] => Array ()
[_GET] => Array ()
[_COOKIE] => Array ()
[_FILES] => Array ()

)
?>

Perhatikan bahwa $ _SERVER tidak ada di sana. Tampaknya php hanya memuat $ _SERVER superglobal jika digunakan di suatu tempat. Anda dapat melakukan ini:

cetak "

".htmlspecialchars (print_r (get_defined_vars (), benar))."
" ;
cetak "
".htmlspecialchars (print_r ($ _SERVER, benar))."
" ;
?>

Dan kemudian $ _SERVER akan muncul di kedua daftar. Saya kira itu "tidak benar-benar gotcha, karena tidak ada hal buruk yang akan terjadi, tapi tetap saja itu adalah rasa ingin tahu yang menarik.

6 tahun yang lalu

Karena get_defined_vars () hanya mendapatkan variabel pada titik Anda memanggil fungsi, ada cara sederhana untuk mendapatkan variabel yang didefinisikan dalam lingkup saat ini.

// Bagian paling atas dari skrip php Anda
$vars = get_defined_vars();

// Sekarang lakukan pekerjaanmu
$foo = "foo";
$batang = "batang";

// Dapatkan semua variabel yang didefinisikan dalam lingkup saat ini
$vars = array_diff (get_defined_vars(), $vars);

gema "

"
;
print_r ($vars);
gema "
" ;
?>

15 tahun yang lalu

Berikut adalah fungsi yang menghasilkan laporan debug untuk tampilan atau email
menggunakan get_defined_vars. Bagus untuk mendapatkan snapshot mendetail tanpa
mengandalkan masukan pengguna.

fungsi generateDebugReport ($ metode, $ didefinisikan_vars, $ email = "tidak terdefinisi") (
// Berfungsi untuk membuat laporan debug untuk ditampilkan atau dikirim ke email.
// Penggunaan: generateDebugReport (metode, get_defined_vars (), email);
// Dimana metodenya adalah "browser" atau "email".

// Buat daftar abaikan untuk kunci yang dikembalikan oleh "get_defined_vars".
// Misalnya, HTTP_POST_VARS, HTTP_GET_VARS, dan lainnya adalah
// redundan (sama seperti _POST, _GET)
// Juga sertakan vars yang ingin Anda abaikan karena alasan keamanan - mis. PHPSESSID.
$ daftar abaikan = array ("HTTP_POST_VARS", "HTTP_GET_VARS",
"HTTP_COOKIE_VARS", "HTTP_SERVER_VARS",
"HTTP_ENV_VARS", "HTTP_SESSION_VARS",
"_ENV", "PHPSESSID", "SESS_DBUSER",
"SESS_DBPASS", "HTTP_COOKIE");

$ timestamp = tanggal ("m / t / y j: m: s");
$ message = "Laporan debug dibuat $ timestamp \ n";

// Dapatkan kesalahan SQL terakhir untuk ukuran yang baik, di mana $ link adalah pengidentifikasi sumber daya
// untuk mysql_connect. Beri komentar atau modifikasi untuk database atau penyiapan abstraksi Anda.
tautan $ global;
$ sql_error = mysql_error ($ tautan);
jika ($ sql_error) (
$ pesan. = "\ nPesan MySQL: \ n". mysql_error ($ tautan);
}
// Akhiri MySQL

// Bisa menggunakan fungsi rekursif di sini. Anda mendapatkan ide ;-)
foreach ($defined_vars sebagai kunci $ => $ val) (
if (is_array ($ val) &&! in_array ($ key, $ abaikanlist) && count ($ val)> 0) (
$ pesan. = "\ n $ array kunci (kunci = nilai): \ n";
foreach ($ val sebagai $ subkey => $ subval) (
if (! in_array ($ subkunci, $ abaikan) &&! is_array ($ subval)) (
$ pesan. = $ subkunci. "=". $ subval. "\ n";
}
elseif (! in_array ($ subkunci, $ daftar abaikan) && is_array ($ subval)) (
foreach ($ subval sebagai $ subsubkey => $ subsubval) (
if (! in_array ($ subsubkey, $ daftar abaikan)) (
$ pesan. = $ subkunci. "=". $ subsubval. "\ n" ;
}
}
}
}
}
jika tidak (!
is_array ($ val) &&! in_array ($ kunci, $ daftar abaikan) && $ val) (
$ pesan. = "\ nVariabel". $ kunci. "=". $ nilai "\ n";
}
}

If ($ metode == "browser") (
echo nl2br ($pesan);
}
elseif ($ metode == "email") (
if ($ email == "tidak ditentukan") (
$email = $_SERVER["SERVER_ADMIN"];
}

$ mresult = mail ($ email, "Laporan Debug untuk". $ _ENV ["HOSTNAME"]. "", $ pesan);
if ($ hasil == 1) (
gema "Laporan Debug berhasil dikirim. \ N";
}
lain (
gema "Gagal mengirim Laporan Debug. \ N";
}
}
}
?>

17 tahun yang lalu

Rutin sederhana untuk mengonversi objek get_defined_vars ke XML.

fungsi obj2xml ($v, $indent = "") (
while (daftar ($ kunci, $ val) = masing-masing ($ v)) (
if ($ kunci == "__attr") lanjutkan;
// Periksa __attr
if (is_object ($ val -> __attr)) (
while (daftar ($ key2, $ val2) = masing-masing ($ val -> __attr)) (
$ attr. = "$ key2 = \" $ val2 \ "";
}
}
lain $ attr = "";
if (is_array ($ val) || is_object ($ val)) (
print("$indentasi< $key$attr >\ n ");
obj2xml ($ val, $ indent. "");
print("$indentasi\ n ");
}
else print("$indentasi< $key$attr >$ nilai\ n ");
}
}

// Contoh objek
$x -> nama -> pertama = "John";
$x -> nama -> terakhir = "Smith";
$x -> arr ["Buah"] = "Pisang";
$x -> arr ["Sayuran"] = "Wortel";
$y -> pelanggan = $x;
$ y -> pelanggan -> __attr -> id = "176C4";

$z = get_defined_vars();
obj2xml ($ z ["y"]);
?>
akan mengeluarkan:


John
Smith


pisang
Wortel

11 tahun yang lalu

Sebagai catatan, get_defined_vars() tidak mengembalikan satu set referensi variabel (seperti yang saya harapkan). Sebagai contoh:

// tentukan variabel
$my_var = "foo";

// dapatkan daftar variabel yang ditentukan
$defined_vars = get_defined_vars();

// sekarang coba ubah nilainya melalui array yang dikembalikan
$defined_vars ["my_var"] = "bilah";

echo $my_var, "\ n";

?>

akan menampilkan "foo" (nilai asli). "Akan lebih baik jika get_defined_vars () memiliki argumen opsional untuk menjadikannya referensi, tetapi saya membayangkan ini adalah permintaan yang agak khusus. Anda dapat melakukannya sendiri (kurang nyaman) dengan sesuatu seperti:

$defined_vars = larik();
$ var_names = array_keys (get_defined_vars ());

foreach ($ var_names sebagai $ var_name)
{
$defined_vars [$ var_name] = & $ $ var_name;
}

?>

1 tahun yang lalu

Saya memposting di sini sebelumnya tentang "ini" berada di get_defined_vars.

Ternyata itu tidak selalu ada tetapi dalam kasus-kasus tertentu akan muncul secara misterius.

php-r"
Tes kelas (
fungsi publik a () (var_dump (array_keys (get_defined_vars ())); $ a = 123;)
fungsi publik b () (var_dump (array_keys (get_defined_vars ())); $ this;)
}
$t = Tes baru();
$t->a();
$t->b();
"

Himpunan ()
larik ("ini")

Ini tidak terjadi di PHP 7.2 tetapi akan terjadi di PHP 5.6.

1 tahun yang lalu

Beberapa komentar di sini menunjukkan bahwa fungsi ini tidak akan mengembalikan referensi. Namun itu mengembalikan nama dan nama adalah "referensi".

Saya tidak akan merekomendasikan saran di sini yang mengubahnya menjadi referensi.

Fungsi publik x ($ a, $ b, $ c) (
foreach (array_keys (get_defined_vars ()) sebagai kunci $)
if ($ kunci! == "ini")
$ this-> y ($ ($ kunci));
}

Fungsi publik y (& $ masukan) (
$ masukan++;
}

Alih-alih $() Anda juga dapat menggunakan $$.

Saya telah melakukan beberapa hal aneh di waktu saya untuk membuat kode yang sangat umum tetapi saya "tidak pernah melakukan hal seperti di atas. Bahkan mungkin tidak berhasil (tetapi seharusnya karena itu tidak berbeda dengan $ a [$ key]).

Anda juga dapat melakukan kunci $$ ++ tetapi saya "belum pernah melihat kode seperti itu" yang sangat buruk (menggunakan dinamis di mana dinamis "tidak menguntungkan).

Jika Anda "melakukan sesuatu seperti itu, berikan pengawasan tambahan.