Gli standard di codifica WordPress l'operatore ternario e le condizioni Yoda

A questo punto della serie, abbiamo coperto molto terreno. Fino ad ora, abbiamo discusso i seguenti argomenti:

  • Convenzioni di denominazione e argomenti di funzione
  • L'uso di singole virgolette e doppie virgolette
  • Indentazione, utilizzo dello spazio e spazi finali
  • Stile di brace, espressioni regolari e tag PHP

Molte cose, giusto?

In questo particolare articolo, ho pensato che sarebbe stato un po 'più semplice prima di passare all'argomento finale. Di conseguenza, tratteremo due argomenti molto semplici (che spesso vengono ignorati o complicati).

Nello specifico, parleremo dell'operatore ternario e parleremo delle condizioni Yoda.


Una parola sui condizionali di WordPress

Quando si tratta di scrivere codice basato su WordPress, gli standard di codifica dicono che dovremmo mirare prima alla leggibilità. Direttamente dal codice:

In generale, la leggibilità è più importante dell'abilità o della brevità.

Ma lì è un po 'di sfumatura a questo. Alcuni sviluppatori considerano l'operatore ternario un po 'in disaccordo con questo particolare principio, in particolare perché è ancora un altro modo di scrivere un se altro dichiarazione, e se lo sviluppatore non ha familiarità con la scrittura o la lettura dell'operatore ternario, allora è in violazione di questo principio.

Daremo un'occhiata a questo in modo più approfondito in un momento.


L'operatore ternario

Innanzitutto, per chi non ha familiarità, l'operatore ternario è un modo semplificato di scrivere un se altro dichiarazione condizionale. Viene in genere utilizzato solo quando il condizionale è della forma più semplice e solo quando c'è un singolo Se e un singolo altro bloccare.

Ad esempio, diciamo che abbiamo un condizionale come questo:

 $ uses_gasoline = null; if ('hybrid' == $ car_type) $ uses_gasoline = false;  else $ uses_gasoline = true;  echo $ uses_gasoline;

Certo, questo è un esempio un po 'forzato, ma ottieni il punto. Dopotutto, sto semplicemente cercando di dimostrare come convertire un condizionale come questo in una forma usata dall'operatore ternario.

In linea con l'esempio sopra, puoi fare quanto segue:

 $ uses_gasoline = 'hybrid' == $ car_type? falsa verità; echo $ uses_gasoline;

Ha senso? Una cosa importante da notare: l'operatore ternario sta testando per vero (piuttosto che falso, ovviamente).

Per quello che vale, trovo che sia molto simile a leggere una frase. La prima clausola fa una domanda (ovviamente punteggiata da un punto interrogativo), con le due possibili risposte restituite in base alla valutazione del condizionale.

Là è un avvertimento per verificare il vero tutto ciò è documentato nel Codex:

Un'eccezione potrebbe essere utilizzata ! vuoto(), come testare per false qui è generalmente più intuitivo.

Nella mia esperienza, quello è stato l'unico momento per usare una valutazione negativa nel condizionale. Tutte le volte che ho passato a lavorare con l'operatore ternario, ho trovato che testare il falso spesso rende la valutazione ternaria più difficile da decifrare.

Inoltre, ho scoperto che è meglio fornire una singola valutazione e può essere due valutazioni in circostanze molto semplici e chiare.

Oltre a quello, quello è come utilizzare l'operatore ternario nel lavoro quotidiano di WordPress


Condizioni di Yoda

Se stavi seguendo da vicino, noterai che ho fatto qualcosa che la maggior parte dei linguaggi di programmazione (o anche piattaforme basate su PHP al di fuori di WordPress) non fanno regolarmente:

Il confronto del condizionale è stato fatto confrontando il valore con la variabile; non viceversa.

Tradizionalmente, vedremmo qualcosa di simile a questo:

 $ uses_gasoline = null; if ($ car_type == 'hybrid') $ uses_gasoline = false;  else $ uses_gasoline = true;  echo $ uses_gasoline;

E l'operatore ternario corrispondente sarebbe simile a questo:

 $ uses_gasoline = $ car_type == 'hybrid'? falsa verità; echo $ uses_gasoline;

Quindi, se la maggior parte dei linguaggi e delle piattaforme di programmazione non utilizzare le condizioni Yoda, quindi perché WordPress?

Secondo il codice:

Nell'esempio sopra, se ometti un segno di uguale (ammettilo, succede anche al più esperto di noi), avrai un errore di analisi, perché non puoi assegnare a una costante come vero. Se la dichiarazione fosse il contrario ($ the_force = true), l'incarico sarebbe perfettamente valido, tornando 1, causando la dichiarazione if da valutare vero, e potresti essere a caccia di quel bug per un po '.

Secondo me, questa è una spiegazione davvero buona per eseguire confronti come questo particolarmente all'interno di linguaggi tipizzati dinamicamente come PHP e JavaScript.

Indipendentemente dal fatto che tu sia d'accordo con questo approccio o no, è vero è parte dello standard e tu siamo andando a vedere questo usato attraverso core di WordPress, temi, plugin, articoli e altro ancora.

A tal fine, consiglio vivamente di iniziare a implementare nel proprio lavoro.


Conclusione

Come ho detto all'inizio, questo particolare post sarebbe stato molto più semplice e diretto di alcuni degli altri materiali che abbiamo trattato nella serie finora.

A questo punto, abbiamo solo un argomento più importante da trattare: query di database.

Dopodiché, faremo una revisione di tutti gli argomenti che abbiamo delineato in questa serie per riassumere i principi che abbiamo descritto negli Standard di codifica.

Ma prima, su Database Queries.