Apprendre PHP pour le développement WordPress: les bases du flux de contrôle
Bienvenue à l’introduction du flux de contrôle PHP! Cet article poursuit avec les bases du développement de PHP pour WordPress. Notre discussion sur le flux de contrôle PHP est basée sur une compréhension de base de plusieurs sujets abordés dans les articles précédents: les fonctions PHP, qui est l’une des principales formes de contrôle du flux d’exécution de code PHP. Php renvoie une déclaration qui est un élément important d’une fonction PHP pour contrôler le flux. Maintenant: Qu’est – ce qu’un flux de contrôle en PHP et pourquoi cela vaut – il la peine d’être discuté?
Qu’est – ce qu’un flux de contrôle de flux PHP vous permet d’écrire du Code qui ne fonctionne pas toujours. \
Si vous avez déjà écrit (ou voulez écrire!) Ce n’est que lorsque quelqu’un publie un nouveau billet sur WordPress ou que l’utilisateur actuel est connecté en tant qu’administrateur que vous saurez à quel point le flux de contrôle est important pour PHP, WordPress et tout système logiciel. Le flux de contrôle est le bourdonnement continu de la logique \
C’est ça.
Contrôle Qu’est – ce que le flux de contrôle PHP Rien de spécial: il ne fait référence qu’à la façon particulière dont PHP gère et implémente le flux de contrôle lui – même. Bien que le flux de contrôle soit simple, il est également extrêmement important: En fait, son existence ou son absence se traduit par deux types de langage technique complètement différents. Donc, si vous voulez savoir ce qui fait de PHP un langage de programmation (et peut – être pas HTML), alors cet article est pour vous. Plongeons! Flux de contrôle: un exemple simple avant de continuer, regardons un exemple très simple de flux de contrôle PHP:
<?php echo 'Hello.'; // Will print "Hello." // Says "if 1 exactly equals 2, then run the code inside" if ( 1 === 2 ) { // None of this code will ever run! It's inside a false if-statement. echo 'Good day.'; // This code will not run. echo 'Greetings.'; // Will not run. $year = date( 'Y' ); // Will not run. echo $year; // Will not run. } echo 'Hi again.' // Will print "Hi again." Il flusso di controllo fa sì che il codice venga eseguito "solo a volte", a seconda delle circostanze particolari specificate. Da questo rapido esempio, possiamo vedere l'essenza del flusso di controllo: fa sì che il codice venga eseguito "solo qualche volta", a seconda di circostanze particolari che tu, il programmatore, specifichi. Nel caso del codice sopra, quel "a volte" è in realtà "mai", perché la nostra istruzione if è impostata per essere eseguita solo quando 1 è uguale a 2.
Se una parte del codice sopra è confusa, non perderti troppo nei dettagli: ci sono molti altri esempi (contenenti codice molto più utile!) Più avanti. Flusso di controllo e tipi di lingua Come ho già detto, alcuni linguaggi tecnici hanno il flusso di controllo e altri no, e questo fa un'enorme differenza nel tipo di linguaggio. In particolare, se un determinato linguaggio tecnico ha o meno un flusso di controllo determina se si tratta di un: Linguaggio dichiarativo , come HTML o CSS, o an Linguaggio imperativo , come PHP o JavaScript. In un linguaggio dichiarativo, tutto ciò che scrivi "si presenta ogni volta". Ad esempio, l'HTML che scrivi in un file .html è ciò che il browser leggerà e interpreterà: tutto, dall'alto verso il basso, non ci sono due modi per farlo.
In un linguaggio imperativo, decidi quali parti del tuo codice verranno eseguite e quando. In un linguaggio imperativo, invece, decidi quali parti del tuo codice verranno eseguite e in quali circostanze. Ad esempio, potresti scrivere uno script PHP di un milione di righe che calcola l'età dell'universo. E quindi potresti racchiudere l'intero script in if( 1 === 2 ) { } , e nessuno di quei milioni di righe di calcoli verrà mai eseguito, proprio come nell'esempio sopra. Quindi possiamo sicuramente "scrivere codice" senza flusso di controllo: ad esempio, scrivendo HTML e CSS per descrivere come dovrebbe apparire un sito web statico. Ma quando le persone parlano di "scrivere in un linguaggio di programmazione", spesso intendono scrivere in un linguaggio imperativo , perché il flusso di controllo – la capacità di "fare cose diverse in circostanze diverse" – è fondamentale per gran parte della programmazione.
Flusso di controllo PHP: strutture di controllo ed esempi In questa sezione, identifichiamo e spieghiamo le principali strutture del flusso di controllo in PHP, con semplici esempi di codice. Strutture di controllo PHP non coperte (meno utili). Fin dall'inizio, ti faremo un favore non coprendo alcune strutture del flusso di controllo PHP che, onestamente, non ho mai avuto bisogno di usare come sviluppatore WordPress: switch : sembra che possa essere utile, ma è anche ingombrante e strano e forse più utile nel codice che è anche ingombrante e strano. Prova prima il refactoring. for() -loops: sintassi confusa. while() sembra più semplice e può fare le stesse cose. declare() : Non ne ho mai sentito parlare prima di oggi e penso di sapere perché. Sembra un ottimo modo per scrivere codice imprevedibile. Con quegli strani elementi fuori mano, ecco semplici esempi di flusso di controllo in PHP:
if() -Dichiarazioni <?php $greeting = 'Hi'; // Says "if $greeting exactly equals the string 'Hi', then run the code inside" if ( $greeting === 'Hi' ) { echo $greeting . '!'; // Will print out "Hi!" } // Says "if $greeting exactly equals the string 'Hello', then run the code inside" if ( $greeting === 'Hello' ) { echo $greeting . ','; // This code will not run } $greeting = 'Hello'; // $greeting is now "Hello" if ( $greeting === 'Hi' ) { echo $greeting . '!'; // This code will not run } if ( $greeting === 'Hello' ) { echo $greeting . ','; // Will print out "Hello," } if() -Dichiarazioni Compreso elseif elseif() È anche possibile scrivere la stessa logica sopra in modo più chiaro ed efficiente, usando elseif .
elseif è un operatore che viene dopo un'istruzione if iniziale. Il codice all'interno di un elseif verrà eseguito solo se entrambe le cose sono vere: L'istruzione if() iniziale e qualsiasi altra s successiva elseif() che si trova al di sopra di quella corrente sono tutte false. La condizione di elseif() è vera. <?php $greeting = 'Hi'; // Says "if $greeting exactly equals 'Hi', then run the code inside" if ( $greeting === 'Hi' ) { echo $greeting . '!'; // Will print out "Hi!" } // Says "If the above if()-statement was false, // *and* $greeting exactly equals 'Hello', then run the code inside" elseif ( $greeting === 'Hello' ) { echo $greeting . ','; // This code will not run } $greeting = 'Hello'; // $greeting is now "Hello" // Below is the same if-elseif block together if ( $greeting === 'Hi' ) { echo $greeting . '!'; // This code will not run } elseif ( $greeting === 'Hello' ) { echo $greeting . ','; // Will print out "Hello," } Questo codice si comporta esattamente come l'esempio sopra, ma salva alcune righe. Cattura anche più chiaramente la verità che $greeting non può essere sia "Ciao" che "Ciao" allo stesso tempo, quindi l'opzione "Ciao" è davvero più chiara da pensare come un elseif() , non come propria if() -affermazione su qualcosa di totalmente separato.
La Boucle while () – cycles est une structure qui peut effectuer plusieurs opérations. Les boucles principales utiles en PHP pour WordPress sont les boucles while () et foreach (). Voici un while () – loop: $i = 0; \/ $ Je commence à 0 \/ \/ while () – la boucle continue aussi longtemps que $I est inférieur à 3, et $I < 3 ) : echo 'Hello and $i is ' . $i . ' | '; $i++; // This means "increase $i by 1" endwhile; Questo ciclo verrà eseguito per un totale di tre volte, stampando quanto segue: Hello and $i is 0 | Hello and $i is 1 | Hello and $i is 2 | Hello and $i is 0 | Hello and $i is 1 | Hello and $i is 2 | Cosa succede al quarto "ciclo" in giro? A questo punto, $i è effettivamente uguale a 3, che non è inferiore a 3. La condizione di while() -loop non è più vera, quindi il ciclo si interrompe. Nota a margine sulla sintassi alternativa di PHP A proposito, si noti che l'esempio sopra usa la sintassi alternativa : invece di while () { } , dice while () : endwhile . La verità è che queste due cose significano esattamente la stessa cosa in PHP: sono sintassi alternativa ("modo di esprimere") per la stessa logica sottostante. Praticamente qualsiasi struttura di controllo PHP in questo articolo può essere scritta in due modi: while () { } o while () : endwhile; if () { } o if () : endif; foreach () { } o foreach () : endforeach; E così via. Queste strutture si comportano in modo identico, quindi quale stile di scrittura scegli è una questione di preferenza e di quali standard di codifica segui. La cosa più importante è che è bene essere coerenti nell'usare qualsiasi sintassi tu scelga. Impara a evitare loop infiniti Se vuoi interrompere PHP e rendere inutilizzabile il sito Web tuo o del tuo cliente, esegui un ciclo infinito: $i = 0; // $i starts out at 0 // This while()-loop will keep running as long as $i is less than 3 while ( $i < 3 ) : echo 'oh no '; endwhile; Questo ciclo durerà per sempre, stampando oh no oh no oh no oh no oh no oh no oh no oh no oh no oh no oh no fino a quando il tuo server non deciderà che ne ha abbastanza e va in timeout. Cosa è cambiato rispetto all'esempio precedente? Non abbiamo più $i++; linea che cresce $i di 1 ogni volta che il ciclo viene eseguito. $i rimane bloccato a 0, che è sempre inferiore a tre, quindi il ciclo non si ferma mai. I tuoi loop hanno sempre bisogno di un motivo per fermarsi. foreach() -Cicli Un ciclo PHP foreach() è un'operazione che funziona con un tipo di dati specifico: gli array. Quello che fa foreach() è "la stessa cosa, una volta, per ogni singolo elemento nell'array che è dato". Vediamo un esempio: L’exemple ci – dessus imprimera ce qui suit: J’ai besoin de lait! J’ai besoin d’oeufs! J’ai besoin de chocolat! J’ai besoin de lait! J’ai besoin d’oeufs! J’ai besoin de chocolat! Foreach () a une utilisation plus complexe et peut être utilisé pour corréler des tableaux (des tableaux plus structurés), mais nous en discuterons plus tard. Fonctions Php comme nous l’avons mentionné dans notre article sur les fonctions PHP, le point central de la fonction est qu’elle ne fonctionne pas immédiatement. Nous n’en avons pas parlé à l’époque, mais c’était en fait une déclaration sur le flux de contrôle. Jetons un coup d’oeil à l’exemple de fonction le plus simple de cet article: Les fonctions sont la meilleure façon d’appeler des bits logiques seulement si nécessaire et, comme toute autre construction linguistique listée ici, sont la base du flux de contrôle PHP. Retour et flux de contrôle comme nous l’avons expliqué dans l’article complet sur l’instruction de retour PHP, retour arrêtera d’exécuter la fonction et retournera tout dans la fonction
Et dis – le. Il s’agit d’un élément important du flux de contrôle. <?php function multiply( $num1, $num2 ) { return $num1 * $num2; echo 'Bananas'; // Won't run! Function already returned } echo multiply( 4, 5 ); // Will print out "20" Quindi, all'interno di una funzione, il return è un "arresto forzato" e, in generale, una "restituzione del tuo lavoro". exit e die Queste due istruzioni sono sintassi alternativa l'una per l'altra: fanno la stessa cosa. Quello che fanno è fermare tutta l'esecuzione di script PHP nel suo intento. Cela peut sembler lourd, mais il peut être très important, par exemple lors de l’écriture de fonctions Ajax. Avec var _ dump (), Die () est également très utile dans le débogage. En fait, vous pouvez passer un paramètre dans die () pour imprimer quelque chose sur la page pendant le processus, mais laissez – nous les détails maintenant. Maintenant vous connaissez le processus! En résumé, la structure de contrôle ci – dessus est l’outil que nous disons à PHP \