Semasa menatal kod anda mungkin terjumpa sesuatu seperti ini jika (1 === $var).
Apakah yang mungkin menjadi perbezaan antara if ($var === 1) dan jika (1 === $var) ?
Perlu diketahui bahawa tiada perbezaan dalam fungsi antara kedua-dua pendekatan. Jadi, kenapa anda menggunakan syarat Yoda semasa menulis syarat ?
Apabila menulis pernyataan if, anda mungkin terlepas beberapa tanda yang sama. Masalahnya ialah apabila anda mengalami sesuatu seperti ini:
if ($var = 1) { // Instead of $var === 1 // Do something }
Apa yang berlaku di sini ?
Tiada ralat dikesan kerana kod ini sah. Masalahnya ialah ia tidak berfungsi seperti yang dimaksudkan: pembolehubah diberikan kepada nilai 1, tiada perbandingan dilakukan dan ia sentiasa benar.
Di sinilah keadaan Yoda berguna; dengan kes yang sama, kita dapat:
if (1 = $var) { // Instead of 1 === $var // Do something }
Di sini kami juga terlepas beberapa persamaan tetapi kod itu tidak sah dan, kali ini, kami mendapat ralat kerana ini tidak sah.
Kami telah melihat bahawa tujuan tunggal syarat Yoda adalah untuk mengelakkan tugasan tidak disengajakan yang mengakibatkan kos kebolehbacaan yang kurang.
Perlukah anda menggunakannya? Kenapa tidak! Tetapi perlu diingat bahawa ini tidak akan menambah baik kod anda dengan sebarang margin.
Juga ia boleh membantu untuk melenturkan diri pada parti dengan devs (yang tidak begitu kerap berlaku).
Untuk anda membaca, terima kasih! ?
Atas ialah kandungan terperinci Keadaan Yoda, dalam PHP, Apakah ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!