Rumah >pembangunan bahagian belakang >tutorial php >PHP pratakrif: memahami pemalar pratakrif dan pembolehubah superglobal

PHP pratakrif: memahami pemalar pratakrif dan pembolehubah superglobal

PHPz
PHPzasal
2023-03-21 14:52:391906semak imbas

PHP ialah bahasa dinamik, dan kod yang ditulis oleh pembangun akan melaksanakan logik yang sepadan. Tetapi dalam proses melaksanakan kod, kami sering memerlukan sesuatu seperti pembolehubah persekitaran atau pemalar sistem untuk membantu kami menyelesaikan beberapa tugasan. PHP menyediakan beberapa pembolehubah yang dipratentukan (atau terbina dalam) yang membolehkan pembangun mendapatkan dan memproses beberapa maklumat penting dengan cepat. Pembolehubah ini dibahagikan kepada dua jenis: pemalar pratakrif dan pembolehubah superglobal.

Pemalar pratakrif

Pemalar pratakrif mempunyai definisi khas dalam PHP: ia ditakrifkan sebelum skrip PHP mula berjalan. Pemalar pratakrif yang biasa digunakan termasuk:

  • LINE: mewakili bilangan baris kod.

  • FAIL: mewakili laluan dan nama fail.

  • DIR: mewakili laluan mutlak direktori tempat fail terletak.

  • FUNGSI: mewakili nama fungsi.

  • KELAS: mewakili nama kelas, termasuk ruang nama.

  • SIFAT: mewakili nama sifat, termasuk ruang nama.

  • KAEDAH: Mewakili nama kaedah kelas.

  • NAMESPACE: mewakili nama ruang nama semasa.

Pemalar yang dipratentukan ini boleh dibaca tetapi tidak boleh ditugaskan semula, contohnya:

<?php
echo __FILE__; // 输出当前文件的路径
echo __LINE__; // 输出当前代码的行数
?>

Tujuan pemalar yang dipratentukan adalah untuk membantu pembangun mencari dengan cepat dan menyahpepijat Kod mungkin digunakan dalam laporan ralat, atau untuk merekod laluan pelaksanaan kod dan cap masa, dsb.

Pembolehubah super global

Pembolehubah super global ialah pembolehubah yang boleh diakses di mana-mana sahaja dalam skrip PHP. Tidak perlu risau tentang skop atau fungsi. Semua pembolehubah superglobal ialah tatasusunan pembolehubah global bermula dengan garis bawah, dan nama tatasusunan berbeza dalam versi yang berbeza. Terdapat beberapa jenis pembolehubah superglobal:

  • $GLOBALS: tatasusunan skop global yang mengandungi semua pembolehubah Nama pembolehubah ialah kunci tatasusunan.

  • $_SERVER: Pelayan dan maklumat persekitaran pelaksanaan. Contohnya: $_SERVER['PHP_SELF'] mengembalikan nama fail bagi skrip yang sedang dilaksanakan.

  • $_GET: Pembolehubah HTTP GET.

  • $_POST: pembolehubah HTTP POST.

  • $_FILES: Pembolehubah muat naik fail HTTP.

  • $_REQUEST: Pembolehubah Permintaan HTTP, yang turut mengandungi kandungan pembolehubah $_GET, $_POST dan $_COOKIE.

  • $_SESSION: Pembolehubah sesi.

  • $_COOKIE: Kuki HTTP.

  • $_ENV: pembolehubah persekitaran.

Contoh pembolehubah super global $_SERVER:

<?php
echo $_SERVER[&#39;PHP_SELF&#39;]; //显示当前执行脚本的文件名,即 index.php
echo $_SERVER[&#39;SERVER_NAME&#39;]; // 显示当前运行脚本所在的服务器的主机名(本机 IP)
echo $_SERVER[&#39;HTTP_REFERER&#39;]; // 获取网页的来源地址 (referer)
echo $_SERVER[&#39;DOCUMENT_ROOT&#39;]; // 显示当前执行脚本的文档根目录(/var/www/)
?>

Kelebihan pembolehubah super global ialah apabila anda perlu mengakses pembolehubah global, anda tidak perlu ke dalam setiap fungsi Lulus pembolehubah ini. Walau bagaimanapun, kerana pembolehubah ini boleh diakses secara langsung di mana-mana dalam mana-mana skrip, ia juga membawa beberapa isu keselamatan Penyerang boleh menggunakan beberapa kelemahan untuk mengubah suai kandungan pembolehubah global ini, menyebabkan sistem menjana pengecualian, dan menyahpepijat serta menganalisis sebab bagi pembolehubah global ini. pengecualian juga akan Lebih sukar.

Kesimpulan:

Pemalar yang dipratentukan dan pembolehubah superglobal ialah beberapa pembolehubah yang dibina ke dalam PHP menjadi lebih mudah dan cekap. Walau bagaimanapun, apabila menggunakannya, anda juga perlu mempertimbangkan isu keselamatan dan butiran pelaksanaan khusus untuk mengelakkan masalah yang tidak dijangka.

Atas ialah kandungan terperinci PHP pratakrif: memahami pemalar pratakrif dan pembolehubah superglobal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn