Ringkasan
Pembolehubah global yang disebut dalam bab sebelumnya tidak boleh dirujuk di dalam fungsi, tetapi pembolehubah super global boleh
Super Pembolehubah global didayakan selepas PHP 4.1.0 Ia adalah pembolehubah yang disertakan dengan sistem PHP dan tersedia dalam keseluruhan skop skrip.
1 PHP pembolehubah super global
Beberapa pembolehubah super global (superglobals) dipratakrifkan dalam PHP, yang bermaksud Ia tersedia. sepanjang skop skrip. Anda boleh menggunakannya dalam fungsi dan kelas tanpa arahan khas.
Senarai pembolehubah super global PHP:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
Dalam bab ini kami akan menerangkan beberapa pembolehubah super global yang biasa digunakan, dan kami akan memperkenalkan pembolehubah yang tinggal dalam beberapa bab seterusnya.
2 PHP $GLOBALS
$GLOBALS ialah kumpulan pembolehubah super global bagi PHP, yang mempunyai semua fungsi dalam Skrip PHP Ia boleh diakses dalam semua domain.
$GLOBALS ialah tatasusunan gabungan global yang mengandungi semua pembolehubah. Nama pembolehubah ialah kunci tatasusunan.
Contoh berikut memperkenalkan cara menggunakan pembolehubah super global $GLOBALS
Kodnya adalah seperti berikut
<?php //定义两个全局变量,函数内部不可以访问 $x = 75; $y = 25; //定义函数 function addition() { //将全局变量变为超级全局变量,这样在函数内部就可以正常访问了 $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } //调用函数 addition(); //输出函数内部定义的全局变量 echo $z; ?>
Nota: Dalam contoh di atas, z ialah pembolehubah super global dalam tatasusunan $GLOBALS juga boleh diakses di luar fungsi
3 PHP $_SERVER
$_SERVER ialah sebuah. fail yang mengandungi maklumat pengepala seperti ), laluan dan pelbagai maklumat seperti lokasi skrip. Item dalam tatasusunan ini dicipta oleh pelayan web. Tiada jaminan bahawa setiap pelayan akan menawarkan semua item pelayan mungkin mengabaikan beberapa, atau menyediakan item yang tidak disenaraikan di sini.
Contoh berikut menunjukkan cara menggunakan elemen dalam $_SERVER:
Kod contoh adalah seperti berikut:
<?php //输出当前脚步的文件名 echo "<h3>输出当前脚步的文件名</h3>"; echo $_SERVER['PHP_SELF']; echo "<hr/>"; //当前脚步所在服务器的主机名 echo "<h3>当前脚步所在服务器的主机名</h3>"; echo $_SERVER['SERVER_NAME']; echo "<hr/>"; //当前请求头中 Host echo "<h3>当前请求头中 Host</h3>"; echo $_SERVER['HTTP_HOST']; echo "<hr/>"; //引导用户代理到当前页的前一页的地址(如果存在) echo "<h3>引导用户代理到当前页的前一页的地址(如果存在)</h3>"; echo $_SERVER['HTTP_REFERER']; echo "<hr/>"; //用来检查浏览页面的访问者在用什么操作系统 echo "<h3>用来检查浏览页面的访问者在用什么操作系统</h3>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<hr/>"; //包含当前脚本的路径 echo "<h3>包含当前脚本的路径</h3>"; echo $_SERVER['SCRIPT_NAME']; ?>
Elemen yang lebih penting dalam pembolehubah $_SERVER ditunjukkan dalam jadual di bawah:
4 PHP $_GET
PHP $_GET digunakan secara meluas. dalam mengumpul Data borang, nyatakan atribut ini dalam teg borang HTML: "method="get".
$_GET juga boleh mengumpul data yang dihantar dalam URL.
Andaikan kami mempunyai hiperpautan yang mengandungi halaman HTML parameter:
<html> <body> <!--创建个连接,连接到12_7.php,并且传过去两个值--> <a href="test.php?subject=PHP&web=php.cn">点击,利用GET方式传值</a> </body> </html>
Apabila pengguna mengklik pada pautan "Klik, gunakan kaedah GET untuk lulus nilai", parameter "subjek" dan "web" akan dihantar ke "test.php", anda boleh gunakan fail "test.php" Gunakan pembolehubah $_GET dalam
Contoh berikut menunjukkan kod untuk fail "test.php":
<html> <body> <!-- 接收12_6.php传来的值 --> <?php echo "Study " . $_GET['subject'] . " at " . $_GET['web']; ?> </body> </html>
5 PHP $_POST
$_POST adalah sama dengan $_GET , digunakan untuk mengumpul data borang, nyatakan atribut ini dalam teg borang HTML: "method="post".
Contoh berikut menunjukkan borang dengan medan input (input) dan butang hantar ( serahkan) ). Apabila pengguna menyerahkan data borang dengan mengklik butang "Serah", data borang akan dihantar ke fail skrip yang dinyatakan dalam atribut tindakan teg <form> untuk memproses data borang. Gunakan fail PHP lain untuk memproses data Anda boleh mengubah suai nama fail skrip yang ditentukan Kemudian, kita boleh menggunakan pembolehubah super global $_POST untuk mengumpul data medan input dalam borang:
<🎜. >Kod contoh adalah seperti berikut:<html> <body> <!-- 定义一个表单,提交一个值至当前页面 --> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <!-- 利用$_POST,输出传来的值 --> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
Nota: Oleh kerana penyerahan ini diserahkan ke halaman semasa, nama pembolehubah akan dipaparkan sebagai tidak ditentukan selepas halaman dimuatkan Setelah nilai diserahkan, ia akan hilang
6 PHP $_REQUEST digunakan untuk mengumpul HTML Data yang dihantar oleh borang boleh dikumpul melalui kaedah penyerahan POST dan GET
Contoh berikut menunjukkan borang dengan medan input (input) dan butang hantar (serahkan). Apabila data borang diserahkan dengan mengklik butang "Serah", data borang akan dihantar ke fail skrip yang dinyatakan dalam atribut tindakan teg <borang> fail untuk memproses data borang jika anda mahu untuk memproses data ini, anda boleh mengubah suai nama fail skrip yang ditentukan Kemudian, kita boleh menggunakan pembolehubah super global $_REQUEST untuk mengumpul data medan input dalam borang:Kod adalah seperti berikut:
<html> <body> <!-- 定义一个表单,提交一个值至当前页面 --> <form method="post" action=""> Name: <input type="text" name="fname"> <input type="submit"> </form> <!-- 利用$__REQUEST,输出传来的值 --> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
Nota: Sebab mengapa fname tidak ditentukan adalah sama seperti $_POST di atas
Pengalaman pembelajaran:
Tidak perlu mengingati semua beberapa pembolehubah super global , cuma semak manual apabila diperlukan
Perbezaan antara $_GET, $_POST dan $_REQUEST akan diperkenalkan secara terperinci dalam bab berikut
bahagian seterusnya