Una introducción detallada en las matrices PHP

Este artículo es una introducción de profundidad en las matrices PHP. Cubriremos cuáles son las matrices PHP, cómo crear y trabajar con ellas y algunos temas menos conocidos que incluso los desarrolladores de PHP experimentados pueden encontrar información. Volver a los elementos básicos es una excelente manera de asegurarse de estar en bases sólidas. Esto es especialmente útil para un sujeto tan instrumental como las pinturas PHP. Puede llegar lejos en el desarrollo de WordPress sin comprender completamente las matrices PHP, pero no llegará a ningún lado si no conoce los elementos básicos. Comenzaremos con los elementos fundamentales de las matrices en el PHP y luego abordaremos temas más complicados.
¿Qué es una matriz PHP? En el nivel más elemental, una matriz PHP es una lista. Si ha programado, es posible que haya encontrado una cosa con un nombre similar (palabra de lujo: “construir”) en la mayoría de los otros lenguajes de programación. En JavaScript y muchos otros idiomas, una matriz es una lista simple de valores. Tal lista tendrá solo una capa de importancia; Y en PHP a veces las matrices son solo listas de varios elementos. Por lo tanto, puede tener una matriz de números enteros: [1, 2, 3, 4, 5] o tipo mixto [verdadero, 1, ‘rojo’, 5, $ objeto, ‘Marshmallow’]. Cualquiera de estos conjuntos similares a las listas es una matriz PHP válida.
Fred me dijo que le gusta pensar en la matriz como cosas como una lista de compras.Expresada en PHP, mi lista de los días anteriores se vería así: $ to_buy = [‘plátanos’, ‘cebolla’, ‘chocolate’];Una matriz que contiene una lista de cosas puede ser bastante útil para la programación.Supongamos que desea pasar por la lista de compras, buscando cada artículo en un artículo uno por uno.Este es el uso perfecto para esta forma básica de matriz PHP.Cubriremos * cómo * hacer esto en otro lugar, pero la estructura de datos PHP de una matriz es la perfecta para usar para ella.
Las matrices asociativas son combinaciones ordenadas por pares, lo que diferencia las matrices PHP de las de otros idiomas es que no son exclusivamente un tipo de datos similar a una lista que expliqué anteriormente. En PHP, también hay matrices ligeramente más estructuradas (o “dos dimensionales”). Aquí en realidad mantenemos conjuntos de pares de “valor clave”. Estos se llaman “matriz asociativa” en el PHP, porque nos permiten “asociar” algo con los valores principales de nuestra matriz. Esto nos permite codificar información bastante significativa, como: [‘Nombre’ => ‘David Hayes’, ‘Age’ => 33, ‘Cold’ => White ‘,’ Hair ‘=>’ Bald ‘] esta información sobre Su autor no es el ejemplo más interesante ni más útil. Pero muestra claramente lo que nos da esta “segunda dimensión” de la matriz: más contexto para los valores que contiene. La matriz solo “valores”, [‘David Hayes’, 33, ‘blanco’, ‘calvo’] podría ser fácil de entender. Pero tal vez ese 33 es el tamaño de los zapatos o la longitud del fémur. Es por eso que a menudo preferimos usar pinturas asociativas, en lugar de matrices “unidimensionales” más simples en el desarrollo de PHP y WordPress.
Incluso las pinturas que no son décadas indican otra cosa que no está completamente clara, pero es cierto que incluso si crea una matriz que es solo una lista de cosas, dentro de PHP todavía lo convierte en un conjunto de pares clave valioso. Entonces, [‘plátanos’, ‘cebolla’, ‘chocolate’] es en realidad una matriz idéntica a la declarada como: [0 => bananas ‘, 1 => cebolla’, 2 => chocolate ‘] Por supuesto, esta la segunda versión es más pronunciado, pero es lo que realmente sucede. Esto destaca otras cosas importantes: “índices” o “claves” en PHP, y la mayoría de los otros lenguajes de programación, comienzan desde 0 en lugar de 1. Esto es por buenas razones, aunque al principio se puede confundir. Pero la “intención cero” es la razón por la cual los plátanos son el elemento “de tipo cero” de la matriz, y no el “primero”. Incluso si ha sido programado durante años, esto puede sorprenderlo de vez en cuando. Obtener un marco pequeño: las pinturas se ordenan mapas porque todas las matrices PHP son realmente asociativas, son súper fuertes. La mayoría de los otros idiomas no llaman a esta estructura “valores clave” “matriz”. En Python se llaman “diccionarios”, en Java hay “tablas hash”, en JavaScript hace “objetos” para este tipo de comportamiento. Esta capacidad de tener claves arbitrarias nombradas es una de las mejores y peores cosas de las matrices PHP. Principalmente, los convierte en el tipo de datos más utilizados en el idioma, especialmente para los desarrolladores de WordPress. La documentación de PHP tiene un lenguaje real, pero no muy claro, sobre la matriz. Está dicho:
Una matriz PHP es en realidad un mapa ordenado.Un mapa es un tipo que asocia valores con claves.Este tipo está optimizado para varios usos diferentes;Se puede tratar como una matriz, lista (vector), tabla hash (una implementación de un mapa), diccionario, colección, pila, cola y probablemente muchos más.Debido a que los valores de la matriz pueden ser otras matriz, son posibles árboles y matriz multidimensionales.Ahora que ha leído mi sección anterior, espero que pueda entender lo que dice php.net.Esencialmente, las matrices PHP pueden ser (y se usan) para muchos tipos de datos más esotéricos que listas simples.Esto se debe al hecho de que pueden convertirse en un “diccionario” que correlaciona los valores clave.Todo el conjunto de comportamiento variado de las matrices en el PHP en el pasado ha tenido un poco de costo de rendimiento, pero especialmente en PHP 7, el costo se ha reducido significativamente.
Todas las formas de declarar la matriz hábil entre ustedes han notado que hasta ahora me he referido exclusivamente a la matriz de PHP con lo que a veces se llama matriz “corta”: soportes cuadrados: []. Antes de PHP 5.4, tenía que declarar una matriz de matriz () (técnicamente, una construcción de idiomas, pero la diferencia supera con creces un buen propósito para este artículo). Entonces, declararía una lista de valores 1, 2 y 3, de la siguiente manera: matriz (1, 2, 3) desde un punto de vista funcional, esta sintaxis y la de los soportes correctos [1, 2, 3] son Idéntico … tanto tiempo como se ejecuta en un servidor que usa PHP 5.4 o más recientemente. Si este tutorial no fuera para un sitio centrado en WordPress, esto no importaría en absoluto. Pero sigue siendo el caso de que mucho código de WordPress haya restos en su historial con PHP hasta 5.2. En WordPress 5.2, el proyecto dejó de aceptar oficialmente PHP 5.2. (Una de esas lindas ayudas de memoria). Así es ahora, afortunadamente, en su mayor parte debes saber y comprender para leer el código anterior.
Agregar valores a las pinturas establecidas La otra buena calidad de la sintaxis de matriz más corta es que coincide con muchas otras formas en que ha podido trabajar con PHP Matrix durante algún tiempo. Supongamos que desea agregar un valor (o un par clave valioso a una matriz), mi forma favorita de hacerlo fue siempre: // agregarlo con la siguiente clave de número: $ num_array = 91; // Agregarlo con una clave específica: $ array [‘new_key’] = ‘new_value’; Para el primer formulario, también puede usar Array_Push ($ num_array, 91). El segundo nunca tuvo una forma diferente de lograrlo. Por lo tanto, los soportes correctos se han relacionado con la matriz PHP durante algún tiempo. A menudo agregará valores a las matrices ya declaradas en el PHP, por las razones lógicas del código que escribe. Las matrices son un tipo de titulares de datos PHP universales, por lo que lo haces con ellos. La facilidad de declaración, lectura y manejo de las matrices es la razón principal por la que verá tan a menudo las matrices $ args en WordPress PHP. Y, a diferencia del objeto o las funciones, es posible saltar sobre la declaración de argumentos o propiedades, si el código que recibe se construye correctamente. (Los pasantes de WordPress son.) No entraré en muchos detalles, porque Fred ya ha escrito un gran artículo sobre las matrices $ args:
Modelos de codificación de WordPress: configurar las opciones con $ args función de lectura de valores de matriz PHP Si tiene una matriz PHP que ya existe y desea averiguar el valor de una clave en particular, generalmente lo hará con: $ val = $ numeric_indexed_array [3]; $ var = $ word_keyed [‘buscar’]; Nada de esto le sorprenderá si ha comenzado a sentirse cómodo con la sintaxis entre los soportes correctos. La clave que debe ver es que la “clave” va entre los soportes rectos y esa clave puede ser un número o una cadena. Otro caso bastante común de acceso a los datos en la matriz es el lugar donde desea el primer elemento en una matriz que no podría indexarse. (Quiero decir, el primer par de matriz puede ser algo así como 27 => ‘elefante’). Si tiene una matriz que no tiene claves confiables, la forma de obtener los primeros elementos es la función PHP Array_Shift. Del mismo modo, si desea el último elemento, pero no sabe ese índice de elementos, puede usar Array_Pop. (Si está familiarizado con la programación y ha oído hablar de una “pila”, aquí generalmente escucha que Push, mencionada en la última sección, y pop como opuesta). Las matrices importantes y mágicas $ _get y $ _post son, por supuesto, es, por supuesto, es , pero $ _get es para los elementos de la cadena de consulta, $ _post es para valores HTTP publicado en una página.
Probablemente el lugar más común donde un desarrollador de PHP tiene que leer los valores de matriz es los superglobes $ _get y $ _post. Entrar en detalles exhaustivos los excede, vaya a los valores “publicados” a través de uno de. ($ _Get es para los elementos de la cadena de consulta al final de una URL, $ _post es para los valores HTTP publicados en una página con mayor frecuencia cuando alguien completa un formulario web). Ambos son meros matriz de PHP, y aparte de usted. (Esto generalmente puede suceder en un sitio de WordPress) puede cambiarse antes de ejecutar su código o es posible que deba cambiarlos para afectar cómo se ejecuta otro código. Para buenos o malos, PHP solo los trata como matriz que cualquiera puede editar como casi cualquier otra matriz. Así que lea de ellas lo mismo que las pinturas anteriores, así que $ postid = $ _get [‘id’
] Y así es como la gente los escribe, pero eso está en una introducción y no aliento a los principiantes a hacer esto. Finalmente, también hay un superglobal de $ _ _Request, que ha combinado, en esencia, $ _get y $ _post (y los superglobal $ _cookies que personalmente no tuve que usar) en una sola matriz. Nuevamente, te desanimaría a usarlo porque está menos claro lo que está sucediendo y, por lo tanto, es un poco menos seguro. Pero es posible ver el código que lo accede y es bueno saber qué es. El bucle de matriz es muy común cuando procesa (o pinturas asociativas) desea repetirlas y hacer algo con cada elemento. Si los saca, resume o muestra cada elemento. La visualización de cada elemento de una matriz es en realidad todo lo que hace el infame “bucle” de WordPress. Es un bucle que itera a través de una serie de objetos WP_Post. Para aquellos que no están absolutamente seguros de por qué los objetos PHP lo están, la versión corta es que son contenedores y funcionalidades de datos más complejos y estructurados que Matrix. Más se explican aquí. “The Loop” se realiza en gran medida utilizando un bucle de tiempo. (Y, para evitar que se confunda demasiado, se basa técnicamente en algunas funciones y un objeto). La forma más común en que las pinturas se repiten en PHP, con mucho, es foreach. Se ve así: foreach ($ array como $ key => $ value) {echo “La clave es $ KEY.”; echo “El valor es $ valor”;

} Lo que es bueno en Foreach es que puedes leerlo con bastante facilidad como en inglés. Leería lo anterior como “Para cada elemento en la matriz $ Array, use las claves como una tecla $ variable $ y los valores como un valor de $ variable. Use un par para cada iteración del siguiente código (contenido en aparatos ortopédicos) “. Puede repetir también usando un bucle for, pero foreach es mucho más común en PHP, porque hace casi exactamente lo que espera y es mucho más fácil de escribir. Y una nota: si no necesita las claves de matriz, funciona igual: foreach ($ matriz como valor $). Ir más allá del bucle, los bucles son excelentes y muy comunes para muchos tipos diferentes de iteración a través de la matriz que le gustaría hacer. Debido a que los bucles funcionan en muchos idiomas, siguen siendo la forma más preferida de convertir una serie de cosas en una serie diferente de cosas. Pero hay una mejor manera: PHP tiene algunas funciones que se crean para permitirle transformar todos los elementos de una pintura sin usar foreach. El uso de estas funciones puede darle un código más limpio y puede hacer todo más claro. Pero tienen un poco de complejidad conceptual que es mayor para la mayoría de las personas que comienzan. Si estos conceptos de “programación funcional” son o no adecuados para usted es una cuestión de elección personal. Pero definitivamente debes pensar en aprender si la mayor parte del resto de este artículo te pareció una revisión. Aquí está la mejor introducción que escribí sobre por qué y cómo debe considerar Array_Map y Array_Filter: Introducción suave al PHP funcional para desarrolladores de WordPress:
¿Usando el filtro y el mapa en las publicaciones de las publicaciones por qué matriz en lugar de objetos? Una de las preguntas más comunes que surgen es la diferencia entre matrices y objetos en PHP. Ambas son unidades conceptuales que pueden tener muchos datos relacionados. Entonces cuál es la diferencia? Como veo, las matrices son excelentes para hacer conjuntos de datos no estructurados o semiestructurados. Por lo tanto, como mencioné anteriormente, las matrices $ Args son realmente comunes en WordPress. Pero a veces desea una estructura definida más rígida, o desea tener más “comportamiento” o funciones relacionadas con esa estructura de datos. Allí y cuando debes llegar a un objeto PHP. Debido a que las propiedades de los objetos son más rígidas que una matriz aleatoria, puede acceder más seguramente a las propiedades de los objetos que a las matrices de índice. Así que me sentiría mucho más seguro de que PHP no me gritará si tengo una serie de publicaciones de WordPress cuando accedo a la publicación como $ post-> Título que accediendo a la publicación como $ post [‘títulos’]. (Por supuesto, no es un gran ejemplo, porque confío en WordPress en cualquier caso.: P) Esotérico: Acceso de matriz de objetos Otra cosa menos común sobre el objeto PHP y la matriz que a veces verá es lo siguiente: en contextos Es posible leer un objeto PHP como matriz. Entonces, si un objeto tiene una propiedad $ obj-> longitud = 7, a veces verá que el código llame con éxito $ obj [‘Legth’
] y obtener 7. ¿Cómo? Hay dos maneras. Lo menos común es que hay un PHP, ArrayAccess y, si es una clase y implementa, se puede acceder a los datos de ese objeto como una matriz. Personalmente, no usaría esto y no lo implementaría (excepto por la compatibilidad), pero me confundió, así que quería mencionarlo. Otra cosa que no recomendaría, pero lo conocí de alguna manera: los objetos PHP se pueden forzar en la matriz. ¿Cómo? $ array = (array) $ objeto; Vi uno o dos principiantes que copian este tipo de código porque no entiendo los conceptos básicos y he encontrado este consejo en alguna parte. Esto es lo que php.net dice sobre esto: si un objeto se convierte en una matriz, el resultado es una matriz cuyos elementos son las propiedades del objeto. Las claves son los nombres de las variables miembros, con algunas excepciones notables: todas las propiedades son inaccesibles; Las variables privadas tienen el nombre de la clase antes del nombre de la variable;

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *