Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tingkah laku penugasan pembolehubah global dalam ":="

Tingkah laku penugasan pembolehubah global dalam ":="

PHPz
PHPzke hadapan
2024-02-09 14:50:25700semak imbas

Tingkah laku penugasan pembolehubah global dalam :=

Editor PHP Xiaoxin akan memperkenalkan kepada anda gelagat penugasan pembolehubah global dalam ":=". Dalam versi PHP yang lebih awal, penetapan kepada pembolehubah global perlu diisytiharkan menggunakan kata kunci "global". Walau bagaimanapun, sejak PHP versi 7.4 memperkenalkan sintaks baharu ":=" untuk penetapan pembolehubah global, kami boleh menetapkan nilai kepada pembolehubah global dengan lebih ringkas, menghapuskan langkah menggunakan kata kunci "global". Ciri baharu ini bukan sahaja meningkatkan kebolehbacaan dan kebolehselenggaraan kod, tetapi juga mengurangkan jumlah kod yang tidak diperlukan dan membolehkan kami mengendalikan pembolehubah global dengan lebih mudah. Mari kita lihat dengan lebih dekat ciri baharu ini!

Kandungan soalan

Walaupun kod dalam main 函数 作用域中使用了 :=,全局 level 仍被分配来自 getlevel() mengembalikan nilai nilai. Bolehkah seseorang menerangkan bagaimana ini boleh diramal dan tingkah laku didokumenkan menggunakan spesifikasi bahasa. Idea saya adalah untuk membaca spesifikasi dengan lebih baik, tetapi saya jelas tidak melakukannya.

Kod: https://go.dev/play/p/4pz0vl-2snn

65bcfadd4058

Keluaran:-

info <nil>
print: info

Penyelesaian

Dalam contoh anda, pembolehubah tempatan baharu := 实际上引入了一个名为 level , ia adalah mengikut spesifikasi, kerana skop global berbeza daripada mana-mana skop fungsi:

Pengisytiharan pembolehubah pendek boleh mengisytiharkan semula pembolehubah, dengan syarat ia pada asalnya diisytiharkan dengan jenis yang sama dalam blok yang sama (atau senarai argumen, jika blok itu ialah badan fungsi).

Sebab anda melihat tingkah laku yang diterangkan ialah anda mencetak rentetan kosong selepas level 的使用实际上都没有引用全局变量。 main 中的用法是从 := 中新增的局部变量,print 中的用法是函数参数。删除参数(在声明和调用站点中),您将看到 printprint: .

Atas ialah kandungan terperinci Tingkah laku penugasan pembolehubah global dalam ":=". Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam