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 函数名([参数名1[=值1], 参数名2[=值2], 参数名n[=值n]]) { 函数中的功能体 [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 '如果是写代码的男人,我们需要更加承担来自家庭的责任<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 //定义函数名为test,必须要传入一个参数 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; } //重点:重点看这一行执行一下 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; } //重点:重点看这一行执行一下 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; //函数后的参数(形式上的参数,参数)处写上变量名为$hello function demo( $hello ){ //形参带入了函数体内,函数体内变量$hello 改为了 250 $hello = 250; //输入2个250相加的结果 echo $hello + $hello; } //将函数体外的变量$hello,传入变量的参数处(实际传入的参数,实参),显示出的结果为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 //定义一条函数狗 function php_cn(){ $foo = 5; $bar = 6; $result = $foo + $bar; //将$result的结果进行返回 return $result; } //调用php_cn()这个函数,$foo和$bar相加的$result就会返回回来给到变量$piao $piao = php_cn(); //输出$piao的结果,果真为11 echo $piao; ?>
11 dalam pelaksanaan fungsi.
<?php demo(); function demo(){ $str = '爸爸妈妈年龄越来越大'; $str .= '大多数的孩子都是独生子女,更加应该负起责任'; 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