Skop pembolehubah fungsi tersuai php
Kami mengetahui beberapa peraturan yang berbeza melalui mengkaji bahagian definisi fungsi dalam bab sebelumnya:
Apabila fungsi ditakrifkan, pembolehubah yang disertakan dalam kurungan ialah parameter formal ( parameter formal) dan tiada kaitan dengan pembolehubah di luar fungsi. Hanya melaksanakan dalam fungsi
Pembolehubah yang diisytiharkan dalam fungsi tidak ada kaitan dengan pembolehubah di luar fungsi.
Walau bagaimanapun, kita akan menghadapi situasi sedemikian dalam pemprosesan sebenar:
Saya mahu pembolehubah yang ditakrifkan dalam badan fungsi digunakan di luar fungsi
Saya mahu menggunakan fungsi Pembolehubah di luar badan digunakan di dalam fungsi
Pada masa ini kita perlu menggunakan pembolehubah super global. Mari semak semula mata pengetahuan sebelumnya:
全局變量名 | 功能說明 |
---|---|
$_COOKIE | 得到會(huì)話控制中cookie傳值 |
$_SESSION | 得到會(huì)話控制中session的值 |
$_FILES | 得到文件上傳的結(jié)果 |
$_GET | 得到get傳值的結(jié)果 |
$_POST | 得到post傳值的結(jié)果 |
$_REQUEST | 即能得到get的傳值結(jié)果,也能得到Post傳值的結(jié)果 |
Mari kita perhatikan ciri-ciri pembolehubah luaran (pembolehubah super-global) melalui eksperimen dan langgar peraturan yang kami rumuskan pada permulaan bab ini:
Mari kita tentukan halaman global.html untuk menulis kandungan HTML:
<html> <head> <title>超全局?jǐn)?shù)組實(shí)驗(yàn)</title> </head> <body> <!--先用POST來實(shí)驗(yàn),以后你可以改成GET喲 --> <form action="glob.php" method="post"> <input type="text" name="hongniu" /><br /> <input type="submit" value="提交" /> </form> </body> </html>
Kami menyerahkan kandungan html ke halaman glob.php melalui borang borang Mari tulis glob.php sekarang:
<?php function demo(){ echo $_POST['hongniu']; } demo(); ?>
Melalui contoh kecil ini, anda akan menemui super-. global $ Siri pembolehubah superglobal ini (pembolehubah luaran) seperti _POST juga boleh digunakan di dalam fungsi. Tiada sekatan pada skop pembolehubah seperti pada permulaan artikel ini. Malah, semua pembolehubah kami yang diisytiharkan diletakkan di bawah tatasusunan $GLOBALS Contohnya:
<?php $hello = 10; echo $GLOBALS['hello'].'<br />'; $GLOBALS['hello'] = '我愛你'; echo $hello; ?>
Melalui contoh di atas, anda akan mendapati bahawa nama $variable adalah bersamaan dengan $. GLOBALS['nama pembolehubah'] . Semua pembolehubah diletakkan dalam $GLOBALS. Dan $GLOBALS juga global.
Oleh itu, kita boleh mencapai matlamat kita: gunakan pembolehubah (pembolehubah tempatan) dalam badan fungsi di luar fungsi. Anda juga boleh menggunakan pembolehubah di luar fungsi di dalam fungsi.
1. Baca pembolehubah luaran melalui $GLOBLAS
<?php $one = 10; function demo(){ $two = 100; $result = $two + $GLOBALS['one']; return $result; } //你會(huì)發(fā)現(xiàn)結(jié)果變成了110 echo demo(); ?>
Dalam contoh di atas: kita mendapatkan pembolehubah di luar badan fungsi melalui $GLOBALS dan menggunakannya dalam badan fungsi . Oleh itu, sekatan bahawa pembolehubah di luar fungsi tidak boleh digunakan dalam badan fungsi dipecahkan.
2. Ubah suai pembolehubah luaran dalam fungsi melalui $GLOBLAS
<?php $hongniu = '我是一個(gè)兵,來自老百姓'; function test(){ echo '執(zhí)行了函數(shù)test喲<br />'; //調(diào)用test()函數(shù),將通過$GLOBALS['hongniu'],把$hongniu的值改變掉 $GLOBALS['hongniu'] = '幫助別人很快樂'; } test(); //發(fā)現(xiàn)是不是輸出的值變了呀? echo $hongniu; ?>
Melalui contoh di atas: kami mendapati bahawa melalui $GLOBALS['hongniu'], $hongniu's The nilai berubah, jadi apabila $hongniu akhirnya dikeluarkan, nilai berubah.
3 Cipta pembolehubah global dalam fungsi melalui $GLOBLAS
<?php function hello(){ $GLOBALS['que'] = '提神喝茶更好喲'; echo '你調(diào)了一下函數(shù)hello<br />'; } hello(); echo $que; ?>
Dalam contoh di atas, kami mendapati bahawa $que tidak wujud dan kami boleh memanggil function hello() Akhirnya, echo $que boleh dilaksanakan di luar fungsi, dan hasilnya dapat dilihat: lebih baik minum teh untuk menyegarkan diri anda. Kami faham bahawa pembolehubah yang diisytiharkan dalam fungsi juga boleh dipaparkan dengan mengisytiharkan pembolehubah melalui $GLOBALS.
Pengetahuan berikut berada pada tahap [pemahaman], dan kami semakin kurang menggunakan kaedah ini untuk mengisytiharkan pembolehubah global. Menggunakan kata kunci global diikuti oleh satu atau lebih pembolehubah dalam fungsi menukar pembolehubah menjadi pembolehubah global Formatnya adalah seperti berikut:
global $variable1[, variable2,....variablen ]<. ??>
Global boleh diikuti oleh satu atau lebih pembolehubah, dan pembolehubah dipisahkan dengan koma.<?php $a = 10; $b = 100; function test(){ global $a , $b; echo $a + $b; } //結(jié)果是不是顯示出來了? test(); ?>Dalam contoh di atas, anda juga boleh cuba mengikuti kata kunci global dengan pembolehubah yang tidak dicipta, mentakrifkan nilai pembolehubah dalam badan fungsi dan cuba mengubah suai nilai pembolehubah. Sebenarnya ia sama dengan $GLOBALS, tetapi penggunaannya berbeza. Nota:
Jangan tulis $variable = value selepas global.
global
Sebutan: [?gl??bl]
Penjelasan: global, global