如何编写函数?
程序中曾经包含子程序和函数(可能我没有经历这种年代),如今,程序中仅有函数这种方式保留下来。
编程语言中的函数,分为内置函数和自定义函数或类方法。内置函数可以直接调用,而自定义函数是程序员编写的。
函数是程序的极其重要的组成部分,要写好,需要遵守一些原则。
函数要短小。函数中不应该容得下嵌套结构,如if...else等。在if..else、while、for或foreach等嵌套结构中,代码不应该超过一行,这唯一一行代码,是对函数的调用。请看代码A。
function test($bool){ $age = 0; if($bool){ $age = 5; }else{ $age = 0; } return $age; } $bool = true; echo test($bool);
上面这段代码,函数体中包含if...else,嵌套结构,根据”函数要短小“的原则,上面的代码应该改写为代码B:
function testTrue(){ $age = 5; return $age; }
function testFalse(){ $age = 0; return $age; }
$bool = true; if($bool){ echo testTrue(); }else{ echo testFalse(); }
我喜欢用代码B风格的代码。它能简化主干代码(抽象层次高的代码)。实际编程中,我综合了代码A和代码B,因为我在代码B的基础上增加了一个函数test。请看代码C。
function testTrue(){ $age = 5; return $age; } function testFalse(){ $age = 0; return $age; } function test($bool){ $age = 0; if($bool){ $age = testTrue(); }else{ $age = testFalse(); } $bool = true; echo test($bool);
三种风格的代码,孰优孰劣?我无法分辨。编程实践中,我选用C风格的代码。写短小的函数,原因是,短小的函数,易读,便于调试。当然,还受制于许多程序员编程实践中总结出的编程原则:一个函数只做一件事情。
《代码整洁之道》用这样的话强调这个编程原则:三十多年来,无数人用无数不同的表达方式传递出这样一个观点,一个函数应该只做一件事情;该函数应该做好这件事情;该函数应该做完这件事情。
掌握这项原则,必须弄明白:怎么叫一件事情?一件事情,是指这些事情都在同一个抽象层次上。举个例子,函数A把订单数据存到数据库,并在这个过程中创建券号、发送短信。表面上看,有三件事情,但由于它们都是同一个抽象层次上的事情,所以,实际上,只有一件事情。如果用创建券号中的代码来取代创建券号函数,函数A就是做了两件事情。
此外,“从上往下“读函数(to...do),也是区分函数是否做了一件事情的好方法。初级程序员要学会这一技巧,并不容易。
看函数的区段,即一个函数能否再分拆出其他的函数,也是识别函数是否只做一件事情的方法。
我觉得,根据”抽象层次“,就可以判断函数是否只做了一件事情。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Alipay Php ...

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Menghantar data JSON menggunakan perpustakaan Curl PHP dalam pembangunan PHP, sering kali perlu berinteraksi dengan API luaran. Salah satu cara biasa ialah menggunakan perpustakaan curl untuk menghantar post ...
