PHP compact()
Hoy veremos la función compact() de PHP, que aunque parezca un poco simple, lo que hace te ahorrara tiempo y también dejara tu código un poco más prolijo.
¿Pero qué hace compact
?
Bueno, este crea un array a partir de variables y sus valores.
Por ejemplo, si tenemos las siguientes variables:
$nombre = "Luis"; $apellido = "Orson"; $edad = "29";
¿Cómo pasaríamos estos valores a un array sin compact
? Probablemente, haríamos algo así, ¿no?
$nombre = "Luis"; $apellido = "Orson"; $edad = "29"; $data = array("nombre"=>$name, "apellido"=>$apellido, "edad"=>$edad); var_dump($data);//si usamos var_dump($data);
por otro lado, con compact podríamos hacer lo siguiente:
utilizando compact$nombre = "Luis"; $apellido = "Orson"; $edad = "29"; var_dump(compact("nombre","apellido","edad"));
La cosa se pone aún más clara a favor de utilizar compact cuando utilizamos más data aún, más si esta incluye arrays, por esta razón es recomendable que lo uses.
si deseas probar un poco más:
Ejemplo simple de php compact<?php echo "<p>Blastcoding.com compact() function example<p>"; echo "<p>sin compact</p>"; $nombre = "Luis"; $apellido = "Orson"; $edad = "29"; $data = array("nombre"=>$nombre, "apellido"=>$apellido, "edad"=>$edad); var_dump($data);//si usamos var_dump($data); echo "<p>con compact</p>"; $nombre = "Luis"; $apellido = "Orson"; $edad = "29"; var_dump(compact("nombre","apellido","edad")); ?>
Donde Puedo usar PHP compact
El primer lugar sin dudas es cuando necesitamos guardar la data después de hacer la validación
$username = "Nick"; $password = "Mhefue3"; $email = "Nick.carp@example.com"; $userData = compact("username", "password", "email"); saveUserData($userData);
En un segundo lugar podemos utilizarlo al pasar datos a una plantilla no tiene sentido hacer un array data para pasar los datos:
$title = "Un titulo"; $content = "a lorem ipsum paragraph"; template("pagina.php", compact("title", "content"));
En un 3.er lugar tenemos que: podemos preparar los datos antes de pasarlos por al usar compact
haremos un array asociativo y, por tanto, obtendremos un objeto JSON
$status = "success"; $data = ["key" => "value"]; echo json_encode(compact("status", "data"));
y por último y obvia cuando tenemos que pasar un array a una función y sus valores están separados en distintas variables.
Puedes ver más funciones para trabajar con arrays en PHP en https://blastcoding.com/php-array-functions-en-espanol/