Fungsi PHP fungsi tersuai sintaks asas
PHP menyediakan fungsi yang berkuasa, tetapi ini jauh daripada memenuhi keperluan Pengaturcara boleh mencipta fungsi mereka sendiri mengikut keperluan. Dalam bahagian ini, kita mula belajar cara mencipta fungsi.
Dalam proses pembangunan sebenar, kita perlu mempunyai banyak fungsi yang perlu digunakan berulang kali, dan fungsi yang perlu digunakan berulang kali ini boleh ditakrifkan sebagai fungsi (fungsi) sebanyak mungkin ( fungsi). Apabila menggunakannya, hanya menjerit namanya.
Kemudian mari kita pelajari peruntukan tatabahasa bagi fungsi tersuai Peruntukan tatabahasa adalah seperti berikut:
function 函數(shù)名([參數(shù)名1[=值1], 參數(shù)名2[=值2], 參數(shù)名n[=值n]]) { 函數(shù)中的功能體 [return 返回值] }
Ciri-ciri berikut terdapat dalam peruntukan tatabahasa di atas, mengakibatkan ungkapan tidak ditentukan berikut:
1. Fungsi bermula dengan fungsi
2. Fungsi diikuti oleh ruang, dan ruang diikuti dengan nama fungsi
3. Nama fungsi dan peraturan penamaan pembolehubah pada asasnya adalah sama, tetapi perbezaannya ialah: nama fungsi Ia tidak sensitif huruf besar dan kecil
4. Parameter yang dipanggil sebenarnya adalah pembolehubah
5. Nama fungsi diikuti oleh kurungan, dan parameter disertakan dalam kurungan Semua parameter disertakan dengan [] (kurung segi empat sama), yang bermaksud Parameter boleh diisi atau tidak
6. Jika terdapat parameter, parameter boleh diikuti dengan yang sama. tanda (=), dan tanda sama diikuti dengan nilai lalai. Nilai parameter juga disertakan dalam [] (kurung segi empat sama), mewakili pilihan
7. Fungsi utama pembolehubah parameter selepas fungsi adalah untuk menghantar nilai pembolehubah di luar fungsi ke dalam badan fungsi untuk kegunaan. Badan fungsi Pembolehubah dan pembolehubah di luar fungsi biasanya dua pembolehubah yang berbeza.
8. Fungsi khusus (badan fungsi) dalam fungsi disertakan dalam kurungan kerinting, menunjukkan bahawa ini ialah julat fungsi fungsi
9. Fungsi boleh mempunyai nilai pulangan atau tiada nilai pulangan, Mereka yang disertakan dengan [] (kurung segi empat sama) mewakili medan pilihan.
10. Pulangan diikuti dengan ruang, dan ruang diikuti dengan nilai pulangan Jika terdapat pemulangan, kod selepas pemulangan tidak akan dilaksanakan.
11. Tiada hubungan tertib dalam pelaksanaan fungsi Anda boleh memanggilnya sebelum titik definisi
12. Fungsi tidak boleh ditakrifkan dua kali, iaitu fungsi tidak boleh terlebih beban.
Ingat: anda juga perlu menulis lebih banyak kod untuk menjalankan eksperimen!
Kita boleh membuktikan perkara ini sedikit demi sedikit melalui percubaan.
1. Fungsinya seperti anjing, ke mana sahaja ia dipanggil, ia akan mengikut anda
<?php function php_cn(){ echo '我是一條狗'; } php_cn(); php_cn(); php_cn(); ?>
Adakah fungsi php_cn memaparkan tiga perenggan: Saya Anjing?
2 Nama fungsi hanya boleh menjadi gabungan huruf, nombor dan garis bawah dan tidak boleh mengandungi ruang Nombor tidak boleh diletakkan pada permulaan nama pembolehubah.
<?php function 1demo(){ } ?>
Kod di atas akan melaporkan ralat. Penamaan fungsi dan penamaan pembolehubah
3 Peraturan untuk penamaan fungsi dan penamaan pembolehubah adalah sama, tetapi perbezaannya ialah: nama fungsi tidak peka huruf besar-kecil
<?php function Demo(){ echo '如果是寫代碼的男人,我們需要更加承擔(dān)來自家庭的責(zé)任<br />'; } demo(); Demo(); DEMO(); ?>
Melalui kod di atas, anda akan mendapati bahawa tiga baris akan dipaparkan: Jika lelaki yang menulis kod, kita perlu mengambil lebih banyak tanggungjawab daripada keluarga
.
Iaitu, nama fungsi tidak sensitif huruf besar-besaran apabila dipanggil. Sesuatu fungsi boleh mempunyai namanya dipanggil berulang kali dan dilaksanakan berulang kali. Ia juga mencerminkan ciri-ciri penggunaan semula.
4. Jika parameter badan fungsi ditentukan dan tiada parameter dihantar, kod akan melaporkan ralat
<?php //定義函數(shù)名為test,必須要傳入一個參數(shù) function test($hello){ } test(); ?>
Tulis perenggan sendiri dan cuba. Adakah ia akan melaporkan ralat?
5 Jika terdapat nilai lalai untuk parameter selepas fungsi, parameter tidak perlu diisi dan kod tidak akan melaporkan ralat
<?php function test( $arg = 10){ echo $arg; } test(); test(88); ?>
Adakah tiada ralat dilaporkan? Dan ia menunjukkan 10 dan keluar.
Perhatikan bahawa jika parameter diluluskan, ia akan dibawa ke dalam fungsi. Jika fungsi tidak melepasi parameter, nilai lalai selepas parameter akan digunakan.
6. Anda boleh menulis berbilang parameter selepas fungsi
<?php function test( $a , $b = 20 , $c = 30){ echo $a + $b + $c; } test( 1 , 2 , 3 ); ?>
Tulis sendiri kod di atas?
7 Jika terdapat parameter dengan nilai lalai dan nilai bukan lalai selepas fungsi, parameter tanpa nilai lalai biasanya ditulis dahulu di kedudukan ketiga dan keempat sebelum <. ??>
Daripada 4 percubaan, kami mendapati bahawa nilai lalai bermakna parameter ini tidak perlu dihantar masuk. Jika tiada nilai lalai, kod akan melaporkan ralat, iaitu parameter tanpa nilai lalai mesti diluluskan. Mari kita lihat contoh berikut:<?php function test( $a = 20 , $b = 30 , $c ){ echo $a + $b + $c; } //重點:重點看這一行執(zhí)行一下 test( , , 8 ); ?>Melalui contoh di atas, kami mendapati bahawa ralat lain telah dilaporkan semasa melaksanakan kod di atas. Maksudnya, sintaks di atas tidak akan berfungsi.
Apa yang kami harapkan dalam sintaks di atas ialah kami tidak menghantar sebarang nilai untuk parameter $a dan parameter $b. Parameter $c mesti dimasukkan, kami melepasi 8. Tetapi peraturan tatabahasa PHP tidak membenarkan kami menulis ini. Oleh itu, kita boleh mencapai kesan yang sama dengan menukar kaedah penulisan:
<?php function test( $c , $a = 20 , $b = 30){ echo $a + $b + $c; } //重點:重點看這一行執(zhí)行一下 test( 8 ); ?>Melalui contoh eksperimen di atas, adakah anda mendapati saya melepasi parameter $c dan kod tidak melaporkan ralat. Parameter $a = 20 dan parameter $b = 30 juga dibawa ke dalam kod $a + $b + $c.
8. Tiada hubungan antara pembolehubah dalam badan fungsi dan pembolehubah di luar fungsi
<?php //定義變量$hello的值為10 $hello = 10; //函數(shù)后的參數(shù)(形式上的參數(shù),參數(shù))處寫上變量名為$hello function demo( $hello ){ //形參帶入了函數(shù)體內(nèi),函數(shù)體內(nèi)變量$hello 改為了 250 $hello = 250; //輸入2個250相加的結(jié)果 echo $hello + $hello; } //將函數(shù)體外的變量$hello,傳入變量的參數(shù)處(實際傳入的參數(shù),實參),顯示出的結(jié)果為500 demo($hello); //此處$hello的值輸出,依然為10 echo $hello; ?>Melalui contoh di atas, kami mendapati tiada perubahan hubungan titik antara parameter formal dan parameter sebenar. Tidak kira bagaimana parameter formal yang diluluskan dalam badan fungsi berubah, ia tidak akan menjejaskan hasil sebenar parameter sebenar $hello.
9. Jika terdapat pengembalian dalam badan fungsi, kod selepas pengembalian tidak akan dilaksanakan
<?php function demo(){ echo 111; return; echo 222; } demo(); ?>Perasan tak? ——Hanya 111 keluaran.
10. Selepas fungsi dijalankan, return boleh membawa nilai dalam badan fungsi ke badan fungsi
<?php //定義一條函數(shù)狗 function php_cn(){ $foo = 5; $bar = 6; $result = $foo + $bar; //將$result的結(jié)果進行返回 return $result; } //調(diào)用php_cn()這個函數(shù),$foo和$bar相加的$result就會返回回來給到變量$piao $piao = php_cn(); //輸出$piao的結(jié)果,果真為11 echo $piao; ?>
11 dalam pelaksanaan fungsi.
<?php demo(); function demo(){ $str = '爸爸媽媽年齡越來越大'; $str .= '大多數(shù)的孩子都是獨生子女,更加應(yīng)該負起責(zé)任'; echo $str; } demo(); ?>boleh dipanggil sebelum definisi melalui contoh di atas, kami mendapati bahawa fungsi boleh dipanggil sebelum atau selepas definisi. Iaitu, fungsi itu boleh dipanggil di mana-mana sahaja.
11. Fungsi tidak boleh terlebih beban
<?php function demo(){ } function demo(){ } //試試會報錯嗎? ?>Melalui contoh di atas, kami mendapati ralat telah dilaporkan, iaitu fungsi dengan nama yang sama tidak boleh ditakrifkan dua kali, jika tidak, ralat telah dilaporkan
Tugasan: 1. Tentukan gelung dua lapisan dan jadual yang menukar warna setiap baris lain
2. Memerlukan jadual ini, nilai lalai adalah 10 dan 10, salah satu warna ialah parameter lalai, dan satu tidak mempunyai parameter lalai
3. Kembalikan rentetan jadual kembali