Programación orientada a objetos en WordPress Estructuras de control I

Para aquellos de ustedes que han seguido la serie hasta ahora, saben que estamos analizando la programación orientada a objetos específicamente desde la perspectiva de un principiante..

Esto significa que estamos abordando el tema no solo para aquellos que buscan cómo comenzar con el paradigma, sino también para todas las diversas características de PHP que conforman el lenguaje y que se utilizan en última instancia dentro de Contexto de la programación orientada a objetos..

Además, estamos haciendo todo esto dentro del contexto de WordPress para que, al final de la serie, podamos ver cómo se puede usar una aplicación práctica de cómo se puede utilizar todo esto en un ejemplo del mundo real..

Si es la primera vez que lee un artículo de la serie, le recomiendo que revise los artículos anteriores, ya que cada artículo de esta serie se basa en el anterior..

Hasta ahora, hemos cubierto lo siguiente:

  1. Una introducción
  2. Las clases
  3. Los tipos

En este artículo vamos a hablar de estructuras de control..

¿Qué son las estructuras de control??

"Estructuras de control" es un término elegante que describe cómo podemos, Ejem, Controlar cómo fluye el código a través de nuestro programa basado en una serie de factores.

Por ejemplo, digamos que queremos avanzar a través de un cierto conjunto de instrucciones, pero usted quiere hacer algo si se establece una variable, u otro conjunto de instrucciones de otra variable se establece.

O digamos que tiene un conjunto de datos que desea leer en bucle leyendo cada valor, configurando cada valor determinado o incluso creando cierto valor..

Cualquiera que sea el caso, la forma en que se hace esto es mediante el uso de estructuras de control. En el resto de este artículo, cubriremos dos tipos de estructuras de control: Condicionales y Bucles..

Aunque los condicionales y los bucles son los tipos de estructuras de control que vamos a revisar, hay subconjuntos de cada uno..

Por ejemplo, los condicionales tienen:

  • si / entonces declaraciones
  • interruptor / caja declaraciones


Los bucles, por otro lado, tienen algunas otras variaciones:

  • para
  • para cada
  • hacer
  • mientras

Si bien estos pueden ser nuevos constructos para algunos de ustedes, ya hemos cubierto los conceptos básicos de los artículos anteriores, por lo que tenemos todo lo que necesitamos para avanzar..

Declaraciones condicionales

En mi opinión, las declaraciones condicionales son algunas de las más fáciles de entender, ya que leen más oraciones similares que muchos otros tipos de declaraciones de programación. Por ejemplo, si estás diciendo literalmente "si esta condición es verdadera, entonces haz esta acción; de lo contrario, haz esta acción".

Claro, se pone un pequeño más complicado que eso si tiene, por ejemplo, algunas otras condiciones para verificar antes de decidir un curso de acción, pero la esencia de esto sigue siendo la misma.

Entonces, dicho esto, comencemos por echar un vistazo a una de las dos variaciones de condicionales que ofrece PHP..

si / entonces Declaraciones

Como se mencionó anteriormente, la declaración condicional más básica es de la forma si / else, y generalmente lo verás escrito así:

Por supuesto, esto todavía no explica realmente cómo funciona la estructura de control, ¿verdad? Quiero decir, claro, proporciona un poco de esqueleto sobre cómo echarle un vistazo, pero deja más que desear..

A saber, ¿qué es esto? condición ¿línea? En segundo lugar, ¿cuáles son los cursos de acción que la estructura de control puede tomar??

Primero el condición se refiere a cualquier declaración que se pueda evaluar como una expresión booleana. ¿Tener sentido? Simplemente pon, condición representa cualquier afirmación que pueda ser evaluada como cierto o falso.

Entonces, por ejemplo, digamos que tenemos dos valores:

  1. $ is_active
  2. $ total_count

Estos son obviamente valores un tanto genéricos, pero digamos que si $ is_active se establece en true, luego incrementaremos el $ total_count por uno; de lo contrario, restaremos el $ total_count por uno. 

Así es como puede verse en el código:

En el ejemplo anterior, $ total_count se incrementará en uno porque $ is_active evalúa a verdadero.

Alternativamente, digamos $ is_active se establece en falso.

En esta ejemplo, $ total_count se reducirá en uno porque $ is_active evalúa a falso.

Ahora, antes de ver el siguiente ejemplo, es importante entender que estos son ejemplos extremadamente triviales. El propósito de estos ejemplos no es mostrar cómo realizar operaciones complejas y combinarlas en las construcciones condicionales, sino cómo utilizar las construcciones condicionales.

Cuando lleguemos a la parte de la serie que nos hace comenzar a escribir un complemento, veremos cómo podemos usar expresiones más elaboradas dentro de una aplicación práctica..

Dicho esto, veamos un ejemplo más de afirmaciones if / then. En este ejemplo, echaremos un vistazo a si / elseif / else. Para empezar, supongamos que $ is_active se establece en verdadero y $ total_count se establece en 10.

= 10) $ total_count = $ total_count + 1 else $ total_count = $ total_count - 1; 

El código anterior se puede leer así:

  • Si $ is_active se establece en true, luego establece el $ total_count a uno. $ is_active no es verdad.
  • De lo contrario, si el $ total_count es mayor o igual que 10, luego incremente la $ total_count por 1. El $ total_count es igual a 10, así que vamos a incrementar el $ total_count a las 11.
  • Si $ total_count no era mayor o igual a 10, entonces decreceríamos el $ total_count por uno.

Para cuando el bloque de código termina de ejecutarse en el ejemplo anterior, $ total_count será igual a 11.

Tener sentido? 

Por eso llamamos a estas estructuras de control: estas declaraciones (o evaluaciones) nos permiten determinar qué código se ejecutará según ciertas condiciones..

Para aquellos que han estado programando por un tiempo, está familiarizado con expresiones más complejas que utilizan operadores como && y || y así. Eventualmente llegaremos a eso, pero no en este artículo.

Todo lo que dicen, es un tema que conozco y que cubriremos, pero no hoy.

Algo más?

Para aquellos de ustedes que tienen más experiencia con la programación, es probable que estén familiarizados con el operador ternario..

No vamos a echar un vistazo a eso en esta serie particular de artículos, ya que está fuera del alcance de lo que buscamos cubrir; Sin embargo, si te sientes aventurero y buscas una forma más concisa de escribir un simple si / else declaraciones, luego compruebe el operador ternario en el manual de PHP.

interruptor / caja Declaraciones

Dicho esto, hay un tipo más de condicional que debemos analizar antes de pasar al siguiente tema..

Este constructo en particular todavía cae bajo declaraciones condicionales; Sin embargo, yo diría que lo verías usado con menos frecuencia que su si / else contrapartida.

Como el título denota, esto se llama interruptor / caja declaración. Aunque personalmente creo que el lenguaje lo hace un poco más complicado de seguir, la forma en que el control fluye a través de las evaluaciones no es muy diferente de lo que ya hemos visto.

Como hicimos con el si / else declaraciones, primero veamos cómo el interruptor / caja está estructurado y luego vamos a echar un vistazo a un par de ejemplos triviales.

Lo primero que se debe tener en cuenta sobre este tipo particular de condicional, es que la evaluación ocurre en un solo lugar: en la parte superior del bloque de código justo al lado del cambiar declaración.

Aquí, la evaluación pasa una vez y luego cada una de las siguientes. caso declaraciones es lo que dicta qué acción se toma. También hay una descanso declaración incluida con cada una de las declaraciones que discutiremos, y también hay una defecto bloque de código en la parte inferior que analizaremos al final del artículo, así como.

Pero antes de hacer algo de eso, configuremos un ejemplo un poco más práctico de lo que es un básico. interruptor / caja declaración parece.

Supongamos que tenemos un valor, $ first_name, y luego queremos tomar un determinado curso de acción basado en el nombre de la persona. En este ejemplo, estableceremos la dirección de correo electrónico de una persona en función de su nombre. Si no reconocemos el nombre de la persona, estableceremos el valor igual a nulo.

Claro, es un poco un ejemplo artificial, pero demostrará el punto:

Veamos el flujo de control en el ejemplo anterior:

  • Definimos un $ persons_name como 'Tom' e inicializamos el $ email_address como una cadena vacía.
  • Luego pasamos el $ persons_name a la declaración de cambio para la evaluación.
  • La estructura de control evaluará la $ persons_name contra cada valor especificado en la declaración del caso.
  • Dado que 'Tom' es el valor de la $ persons_name, entonces el $ email_address se establecerá en '[email protected]'

Si tuviéramos que pasar 'David' como el $ persons_name entonces $ email_address se establecería en '[email protected]'.

A continuación, si tuviéramos que pasar alguna otro nombre que no sea 'Tom' o 'David', entonces el $ email_address se establecería en NULO. También es importante tener en cuenta que interruptor / caja es sensible a mayúsculas y minúsculas Esto significa que si pasara 'tom' en lugar de 'Tom', entonces serían tratados como casos diferentes.

Por último, tenga en cuenta que cada caso termina con un descanso declaración. Esto es importante porque descanso ordena el código para saltar fuera de la interruptor / caja Declaración y continuar trabajando en cualquier código que viene a continuación.

Es extremadamente importante entender que si olvida una declaración de ruptura, entonces caerá inmediatamente a la siguiente declaración del caso que obviamente puede tener resultados erráticos (como establecer el error $ email_address).

Un ejemplo de cómo puede aprovechar esto a su favor es el siguiente:

En el ejemplo anterior, hemos definido los casos para 'Tom' cuando está en minúscula o tiene la primera letra en mayúscula y demuestra cómo el código pasará a la siguiente caso declaración.

Pero hay una manera aún mejor de hacerlo más a prueba de balas:

Tenga en cuenta que esto toma la función de PHP strtolower con el fin de forzar la entrada $ persons_name estar completamente en minúsculas Esto nos permite refinar nuestras declaraciones de casos aún más.

¿Qué pasa después??

En este artículo, analizamos el primero de los dos grupos de estructuras de control que están disponibles para nosotros en PHP. No, estos no son parte explícita de la programación orientada a objetos, pero antes de que hablemos de aspectos más fundamentales del paradigma, debemos comprender todos los puntos más finos que nos permiten escribir código orientado a objetos..

Con ese fin, continuaremos esta discusión sobre las estructuras de control en el próximo artículo al observar los bucles. 

Después de eso, estaremos listos para dirigir nuestra atención a las funciones. Para aquellos que están familiarizados con la programación de procedimientos, las funciones no son nada nuevo; Sin embargo, si eres nuevo en la programación orientada a objetos, hay una serie de factores que los diferencian de la forma en que se utilizan en la programación de procedimientos..

Así que esa es la hoja de ruta para el próximo conjunto de artículos. Como siempre, los comentarios siempre son bienvenidos y espero continuar nuestra discusión en el próximo artículo.