Terokai Operator Ternary dan Syarat Yoda dalam Piawaian Pengekodan WordPress

WBOY
Lepaskan: 2023-09-03 22:30:01
asal
551 orang telah melayarinya

探索 WordPress 编码标准中的三元运算符和 Yoda 条件

Pada ketika ini dalam siri ini, kami telah membincangkan banyak perkara. Setakat ini kami telah membincangkan topik berikut:

  • Menamakan Konvensyen dan Parameter Fungsi
  • Penggunaan petikan tunggal dan petikan berganda
  • Lekukan, penggunaan ruang dan ruang belakang
  • Gaya pendakap, ungkapan biasa dan tag PHP

Banyak barang kan?

Dalam catatan khusus ini, saya rasa kita harus meringankan sedikit perkara sebelum masuk ke topik terakhir. Oleh itu, kita akan membincangkan dua topik yang sangat mudah (sering diabaikan atau terlalu rumit).

Secara khusus, kami akan bercakap tentang pengendali ternary, dan kami akan bercakap tentang syarat Yoda.


Sepatah kata tentang syarat WordPress

Apabila menulis kod berasaskan WordPress, piawaian pengekodan dengan tegas menyatakan bahawa kita harus menyasarkan kebolehbacaan terlebih dahulu. Terus dari Codex:

Secara umumnya, kebolehbacaan adalah lebih penting daripada kepandaian atau ringkasan.

Tetapi ada beberapa nuansa. Sesetengah pembangun merasakan bahawa pengendali ternary agak tidak konsisten dengan prinsip tertentu ini, terutamanya kerana ia adalah cara lain untuk menulis pernyataan if/else, dan jika pembangun tidak biasa dengan menulis atau membaca ternary operator, maka ini melanggar prinsip ini. if/else 语句的另一种方式,并且如果开发人员不熟悉编写或读取三元运算符,那么这违反了这个原则。

我们稍后会更深入地讨论这个问题。


三元运算符

首先,对于那些不熟悉的人来说,三元运算符是编写 if/else 条件语句的简化方法。通常当条件是最简单的形式时以及当存在单个 if 和单个 else 块时使用。

例如,假设我们有一个这样的条件:

$uses_gasoline = null;

if ( 'hybrid' == $car_type ) {
	$uses_gasoline = false;
} else {
	$uses_gasoline = true;
}

echo $uses_gasoline;
Salin selepas log masuk

当然,这是一个有点做作的例子,但你明白了。毕竟,我只是想演示如何将这样的条件转换为三元运算符使用的形式。

根据上面的示例,您可以执行以下操作:

$uses_gasoline = 'hybrid' == $car_type ? false : true;
echo $uses_gasoline;
Salin selepas log masuk

有道理吗?需要注意的一件重要事情是:三元运算符正在测试 true(而不是 false,显然)。

就其价值而言,我发现这很像阅读一个句子。第一个子句提出一个问题(显然用问号标点),根据条件评估返回两个可能的答案。

有一个警告用于检查 Codex 中记录的所有内容是否真实:

使用 是一个例外! empty(),因为这里测试 false 通常更直观。

根据我的经验,这是唯一一次在条件语句中使用否定评价。在我使用三元运算符的所有时间里,我发现测试 false 通常会使三元计算变得更难以破译。

此外,我发现最好提供一次评估,也许在非常简单、清晰的情况下提供两次评估。

除此之外,这就是您在日常 WordPress 工作中使用三元运算符的方式


尤达条件

如果您密切关注,您会注意到我做了一些大多数编程语言(甚至 WordPress 之外基于 PHP 的平台)通常不会做的事情:

条件的比较是通过将值与变量进行比较来完成的; 不是相反。

传统上,我们会看到这样的东西:

$uses_gasoline = null;

if ( $car_type == 'hybrid' ) {
	$uses_gasoline = false;
} else {
	$uses_gasoline = true;
}

echo $uses_gasoline;
Salin selepas log masuk

相应的三元运算符看起来像这样:

$uses_gasoline = $car_type == 'hybrid' ? false : true;
echo $uses_gasoline;
Salin selepas log masuk

如果大多数编程语言和平台使用 Yoda 条件,那么 WordPress 为什么要使用?

根据食品法典:

在上面的例子中,如果你省略了一个等号(承认这一点,即使是我们中最有经验的人也会发生这种情况),你会得到一个解析错误,因为你不能分配给像这样的常量true。如果该语句是相反的 ( $the_force = true ),则该赋值将完全有效,返回 1,导致 if 语句的计算结果为 true

Kami akan membincangkan perkara ini dengan lebih mendalam kemudian.

Pengendali Ternary

Pertama sekali, bagi mereka yang tidak dikenali, pengendali ternary ialah cara ringkas untuk menulis pernyataan bersyarat if/else. Biasanya digunakan

sahaja

apabila keadaan dalam bentuk paling ringkas dan

sahaja

apabila terdapat satu blok if dan satu blok else.

Sebagai contoh, andaikan kita mempunyai syarat seperti ini:

rrreee

Sudah tentu, ini adalah contoh yang dibuat-buat, tetapi anda faham maksudnya. Lagipun, saya hanya ingin menunjukkan cara menukar keadaan sedemikian ke dalam bentuk menggunakan pengendali ternary.

Berdasarkan contoh di atas, anda boleh melakukan perkara berikut:

rrreee

Adakah ia masuk akal? Satu perkara penting yang perlu diberi perhatian: pengendali ternary sedang menguji kebenaran (tidak salah, jelas).

Untuk nilainya, saya dapati ini seperti membaca ayat. Klausa pertama mengemukakan soalan (jelas dengan tanda tanya) dan mengembalikan dua kemungkinan jawapan berdasarkan penilaian bersyarat.

🎜Terdapat amaran 🎜🎜 untuk menyemak sama ada semua yang direkodkan dalam Codex adalah benar: 🎜 🎜🎜Menggunakan adalah pengecualian! empty(), kerana ujian untuk false di sini selalunya lebih intuitif. 🎜🎜 🎜Menurut pengalaman saya, ini adalah satu-satunya masa penilaian negatif digunakan dalam pernyataan bersyarat. Sepanjang masa saya menggunakan pengendali ternary, saya telah mendapati bahawa ujian palsu selalunya menjadikan pengiraan ternary lebih sukar untuk dihuraikan. 🎜 🎜Selain itu, saya mendapati adalah lebih baik untuk memberikan satu penilaian, 🎜mungkin 🎜dua penilaian dalam konteks yang sangat mudah dan jelas. 🎜 🎜Selain itu, 🎜ini ialah 🎜cara anda menggunakan operator ternary dalam kerja WordPress harian anda🎜 🎜 🎜Syarat Yoda🎜 🎜Jika anda memberi perhatian dengan teliti, anda akan perasan bahawa saya melakukan sesuatu yang kebanyakan bahasa pengaturcaraan (walaupun platform berasaskan PHP di luar WordPress) biasanya tidak lakukan: 🎜 🎜Perbandingan syarat dilakukan dengan membandingkan nilai dengan pembolehubah 🎜bukan 🎜sebaliknya. 🎜 🎜Secara tradisinya, kita akan melihat sesuatu seperti ini: 🎜 rrreee 🎜Pengendali ternary yang sepadan kelihatan seperti ini: 🎜 rrreee 🎜Jika kebanyakan bahasa pengaturcaraan dan platform 🎜tidak 🎜menggunakan syarat Yoda, maka mengapa perlu WordPress? 🎜 🎜Menurut Codex Alimentarius: 🎜 🎜🎜Dalam contoh di atas, jika anda meninggalkan tanda yang sama (akuinya, ini berlaku walaupun kepada yang paling berpengalaman daripada kami), anda akan mendapat ralat penghuraian kerana anda tidak boleh menetapkan kepada sesuatu seperti Pemalar sedemikian adalah benar kod>. Jika penyataan itu adalah berlawanan ( $the_force = true ), maka tugasan akan sah sepenuhnya, mengembalikan 1, menyebabkan pernyataan if dinilai kepada true code>, dan anda mungkin mengejar ralat ini. 🎜🎜 🎜Pada pendapat saya, ini adalah penjelasan yang sangat baik untuk melakukan perbandingan sedemikian, 🎜terutamanya 🎜dalam bahasa yang ditaip secara dinamik seperti PHP dan JavaScript. 🎜 🎜Sama ada anda bersetuju dengan pendekatan ini atau tidak, ia adalah sebahagian daripada standard dan anda akan melihatnya dilaksanakan melalui teras WordPress, tema, pemalam, artikel dan banyak lagi. 🎜 🎜Atas sebab ini, saya amat mengesyorkan anda mula melaksanakannya dalam kerja anda sendiri. 🎜 🎜 🎜Kesimpulan🎜 🎜Seperti yang saya nyatakan pada mulanya, artikel khusus ini akan menjadi lebih ringkas dan lebih mudah daripada beberapa bahan lain yang telah kami bincangkan setakat ini dalam siri ini. 🎜 🎜Pada ketika ini, kami hanya mempunyai satu topik utama untuk dibincangkan: pertanyaan pangkalan data. 🎜 🎜Selepas itu, kami akan menyemak semua topik yang digariskan dalam siri ini untuk meringkaskan prinsip yang kami perincikan dalam piawaian pengekodan kami. 🎜 🎜Tetapi pertama, mari kita bincangkan pertanyaan pangkalan data. 🎜

Atas ialah kandungan terperinci Terokai Operator Ternary dan Syarat Yoda dalam Piawaian Pengekodan WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!