Jadual Kandungan
1. Gantikan ternari yang sederhana dengan tugasan logik
2. Gunakan pemetaan objek dan bukannya lama if/else if rantai
3. Gantikan klausa pengawal dengan pulangan awal
4. Gunakan kaedah array dan bukannya gelung bersyarat
5. Leverage Destructuring and Defaults Untuk mengelakkan cek
Rumah pembangunan bahagian belakang tutorial php Refactoring Legacy `if/else` blocks dengan keadaan singkat moden

Refactoring Legacy `if/else` blocks dengan keadaan singkat moden

Jul 31, 2025 pm 12:45 PM
PHP Shorthand if Statements

Ganti jika/lain tugasan dengan ternaries atau pengendali logik seperti ||, ??, dan & & untuk ringkas, niat jelas. 2. Gunakan pemetaan objek dan bukannya jika/lain jika rantai untuk menyelesaikan secara bersih pemeriksaan nilai berganda. 3. Sapukan pulangan awal melalui klausa pengawal untuk mengurangkan sarang dan menyerlahkan aliran utama. 4. Gantikan gelung bersyarat dengan kaedah array seperti Cari dan Penapis untuk logik Deklaratif dan Boleh Dibaca. 5. Leverage Destructuring dengan lalai dan chaining pilihan untuk menghapuskan cek harta yang berlebihan. Matlamatnya adalah untuk menulis lebih banyak kod yang dapat dipelihara dan ekspresif dengan memihak kepada corak JavaScript moden ke atas keadaan yang sangat bersarang, menghasilkan logik yang lebih bersih dan lebih diramalkan.

Refactoring Legacy `if/else` blocks dengan keadaan singkat moden

Refactoring Legacy if/else blok dengan keadaan shorthand moden bukan sekadar menulis kod kurang - ia mengenai peningkatan kebolehbacaan, mengurangkan bersarang, dan membuat logik lebih mudah untuk dikekalkan. Terlalu bersarang atau sangat dirantai if/else adalah perkara biasa dalam kod yang lebih lama dan sering membawa kepada pepijat, kekeliruan, dan pertindihan. Nasib baik, JavaScript moden (dan corak yang serupa dalam bahasa lain) menawarkan alternatif yang lebih bersih.

Refactoring Legacy `if/else` blocks dengan keadaan singkat moden

Berikut adalah cara refactor keadaan tradisional ke dalam pembinaan yang lebih ekspresif, ringkas.


1. Gantikan ternari yang sederhana dengan tugasan logik

Apabila anda memberikan nilai berdasarkan keadaan, elakkan penuh if/else .

Refactoring Legacy `if/else` blocks dengan keadaan singkat moden

Sebelum:

 biarkan hasil;
jika (userLoggedIn) {
  hasil = 'selamat datang';
} else {
  hasil = 'login';
}

Selepas:

Refactoring Legacy `if/else` blocks dengan keadaan singkat moden
 Const Result = userLoggedIn? 'Selamat Datang': 'Login';

Lebih baik lagi, untuk pemeriksaan Truthy/Falsy yang mudah, gunakan pengendali logik:

 // nilai lalai
const name = nama pengguna || 'Tetamu';

// Coalescing Nullish (lebih selamat)
Const Name = Nama Pengguna ?? 'Tetamu';

// tugasan litar pintas
isLoggedIn && showdashboard ();

Ini shorthands mengurangkan boilerplate dan membuat niat lebih jelas.


2. Gunakan pemetaan objek dan bukannya lama if/else if rantai

Apabila anda menyemak pembolehubah yang sama terhadap pelbagai nilai, objek carian adalah lebih bersih daripada satu siri if/else if .

Sebelum:

 biarkan tindakan;
jika (status === 'memuat') {
  tindakan = 'spinner';
} else if (status === 'kejayaan') {
  tindakan = 'semak';
} else if (status === 'error') {
  tindakan = 'salib';
} else {
  tindakan = 'lalai';
}

Selepas:

 const statusmap = {
  Memuat: 'Spinner',
  Kejayaan: 'semak semak',
  Ralat: 'salib',
};

const action = statusmap [status] || 'lalai';

Atau dengan Map atau fungsi gaya switch :

 const getaction = (status) => ({
  Memuat: 'Spinner',
  Kejayaan: 'semak semak',
  Ralat: 'salib',
} [status] ?? 'lalai');

Skala corak ini lebih baik dan lebih mudah untuk menguji atau melampaui.


3. Gantikan klausa pengawal dengan pulangan awal

Lama if/else sering menyembunyikan keluar awal yang mudah. Gunakan klausa pengawal untuk meratakan logik.

Sebelum:

 fungsi ProcessUser (pengguna) {
  jika (pengguna) {
    jika (user.isaktif) {
      kembali SendWelComeMail (pengguna);
    } else {
      kembali null;
    }
  } else {
    kembali null;
  }
}

Selepas:

 fungsi ProcessUser (pengguna) {
  jika (! user ||! user.isactive) kembali null;
  kembali SendWelComeMail (pengguna);
}

Pulangan awal mengurangkan lekukan dan menjadikan jalan gembira lebih jelas.


4. Gunakan kaedah array dan bukannya gelung bersyarat

Kadang -kadang if/else logik dikebumikan di dalam gelung. Gantikan dengan kaedah array deklaratif.

Sebelum:

 biarkan hasil;
untuk (biarkan i = 0; i <users.length; i) {
  jika (pengguna [i] .id === targetId) {
    hasil = pengguna [i];
    rehat;
  }
}

Selepas:

 const result = users.find (user => user.id === TargetId) ?? null;

Atau untuk pelbagai syarat:

 const ditapis = users.filter (u => 
  u.active && (u.role === &#39;admin&#39; || u.role === &#39;moderator&#39;)
);

Kaedah deklaratif menyatakan apa yang anda mahukan, bukan bagaimana untuk mendapatkannya.


5. Leverage Destructuring and Defaults Untuk mengelakkan cek

Elakkan if cek untuk sifat yang hilang dengan menggunakan lalai.

Sebelum:

 fungsi getName (pengguna) {
  jika (user && user.profile && user.profile.name) {
    kembali user.profile.name;
  }
  kembali &#39;tanpa nama&#39;;
}

Selepas:

 fungsi getName (pengguna) {
  const {name = &#39;anonymous&#39;} = user? .profile || {};
  Nama kembali;
}

Atau lebih pendek:

 const getName = (user) => user? .Profile? .Name ?? &#39;Anonymous&#39;;

Pilihan Chaining ( ?. ) Dan Nullish Coalescing ( ?? ) Menghapuskan seluruh cabang kod pertahanan.


Matlamatnya bukan untuk menghapuskan if kenyataan sepenuhnya - mereka sah dan perlu. Tetapi dengan menggunakan ciri bahasa moden, anda boleh menggantikan logik yang kompleks dan bersarang dengan corak yang lebih mudah, lebih mudah dipelihara.

Pada asasnya: peta bukan rantai, kembali awal, gunakan lalai, dan lebih suka ungkapan ke atas pernyataan. Ia bukan sihir - hanya kod bersih.

Atas ialah kandungan terperinci Refactoring Legacy `if/else` blocks dengan keadaan singkat moden. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1543
276
Demystifying Operator Precedence in Complexhand Conditionals Demystifying Operator Precedence in Complexhand Conditionals Aug 01, 2025 am 07:46 AM

OperatorPrecedEdeterMinesEvaluationOrderInshortheHandConditials, Where && dan || bindmoretightlythan? :, SOExpressionsLik ea || b? c: Dareinterpretedas (a || b)? c: d, nota || (b? c: d); 1.alwaysuseparenthesestoclarifyIntent, suchasa || (b? c: d) atau (a && b)? x: (c

Refactoring Legacy `if/else` blocks dengan keadaan singkat moden Refactoring Legacy `if/else` blocks dengan keadaan singkat moden Jul 31, 2025 pm 12:45 PM

Penggantif/elseassignmentswithternariesorlogicalatorsike ||, ??, dan & & forconcise, clearintent.2.useObjectMappingInsteadofif/elseifchainstocleanleanlesolvemuliplevalueCks.3.applyarlyreturnsviAguardlanaeSheViAGaNheAgeArdlanaeSheViAGaNheAglanaeAglanaeSheViAg

Dari Verbose ke Ringkas: Panduan Praktikal untuk `if` Penyataan Refactoring Dari Verbose ke Ringkas: Panduan Praktikal untuk `if` Penyataan Refactoring Aug 01, 2025 am 07:44 AM

Returnearlytoreducenestingbyexitingfunctionsassoonasinvalidoredgecasesaredetected,resultinginflatterandmorereadablecode.2.Useguardclausesatthebeginningoffunctionstohandlepreconditionsandkeepthemainlogicuncluttered.3.Replaceconditionalbooleanreturnswi

Menavigasi perangkap pengendali ternary bersarang di PHP Menavigasi perangkap pengendali ternary bersarang di PHP Jul 31, 2025 pm 12:25 PM

Nestedternaryoperatorsinphpshouldbeoidedbecausetheyreducereadability, asseenwhencomparingaconfusingnestedternarytoitsproperlyparenthesisedbutstillhard-to-readform;

Membuka kunci pengendali Elvis (`?:`): PHP yang dilupakan bersyarat bersyarat Membuka kunci pengendali Elvis (`?:`): PHP yang dilupakan bersyarat bersyarat Aug 01, 2025 am 07:46 AM

Pengendali Elvis (? :) digunakan untuk mengembalikan nilai sebenar kiri atau nilai lalai yang betul. 1. Kembalikan nilai kiri apabila nilai kiri adalah benar (bukan null, palsu, 0, '', dll.); 2. Jika tidak, kembalikan nilai lalai yang betul; Sesuai untuk nilai lalai tugasan yang berubah -ubah, memudahkan ekspresi ternary, dan memproses konfigurasi pilihan; 3. Walau bagaimanapun, adalah perlu untuk mengelakkan menggunakan rentetan 0, palsu, dan kosong sebagai nilai yang sah. Pada masa ini, pengendali gabungan kosong (??); 4. Tidak seperti ??: Berdasarkan penghakiman nilai kebenaran, ?? Hanya semak null; 5. Biasanya dalam output tindak balas Laravel dan templat bilah, seperti nama $ ?: 'tetamu'; Memahami tingkah lakunya dengan betul boleh selamat dan cekap digunakan dalam pembangunan PHP moden.

Menguasai pengendali ternary PHP untuk kod yang lebih bersih dan lebih ringkas Menguasai pengendali ternary PHP untuk kod yang lebih bersih dan lebih ringkas Jul 31, 2025 am 09:45 AM

Pengendali ternary PHP adalah alternatif yang ringkas, sesuai untuk tugasan bersyarat yang mudah, yang dapat meningkatkan kebolehbacaan kod; 1. Apabila menggunakan pengendali ternary, anda harus memastikan logik yang jelas dan hanya menggunakan pertimbangan mudah; 2. Elakkan pengendali ternary bersarang, kerana mereka akan mengurangkan kebolehbacaan, dan menggunakan struktur jika-elseif-else sebaliknya; 3. Gunakan pengendali penggabungan NULL (??) untuk menangani nilai null atau tidak jelas, dan menggunakan pengendali Elvis (:) untuk menilai nilai kebenaran; 4. Simpan ekspresi pendek, elakkan kesan sampingan, dan sentiasa mengambil kebolehbacaan sebagai matlamat utama; Betul menggunakan pengendali ternary boleh membuat kod lebih ringkas, tetapi kejelasan tidak boleh dikorbankan untuk mengurangkan bilangan baris. Prinsip muktamad adalah untuk memastikan ia mudah, boleh diuji dan tidak bersarang.

Kekuatan `??`: Memudahkan pemeriksaan null dalam aplikasi PHP anda Kekuatan `??`: Memudahkan pemeriksaan null dalam aplikasi PHP anda Jul 30, 2025 am 05:04 AM

? Pengendali adalah pengendali gabungan kosong yang diperkenalkan oleh Php7, yang digunakan untuk mengendalikan pemeriksaan nilai null. 1. Jika ya, ia mengembalikan nilai, jika tidak, ia mengembalikan nilai lalai, seperti $ array ['kekunci'] ?? 'lalai'. 2. Berbanding dengan kaedah menggabungkan isset () dengan pengendali ternary, ia lebih ringkas dan menyokong panggilan rantai, seperti $ _Session'user '[' tema '] ?? $ _ cookie [' tema '] ??' cahaya '. 3. Ia sering digunakan untuk mengendalikan input bentuk, bacaan konfigurasi dan objek akses atribut, tetapi hanya hakim null, dan tidak mengenali '', 0 atau palsu sebagai "kosong". 4. Semasa menggunakannya

Menulis PHP yang lebih ekspresif: Panduan kepada Pengendali Ternary dan Coalescing Menulis PHP yang lebih ekspresif: Panduan kepada Pengendali Ternary dan Coalescing Jul 31, 2025 pm 12:26 PM

UsetheternaryOperator (? :) forsimpleif-entlogic, penugasan nilaibasedonabooleancondition, butavoidnestingforclarity; 2.preffenullcoalescingoperator (??) tosafelyhandlenullvaluesandprovidedefault

See all articles