De todos los lenguajes de programación con los que he trabajado creo que PHP es el más flexible y poderoso. Hoy descubrí un excelente truco que permite crear y evaluar nombres de variables a partir de strings en una misma línea.
Para lograr este cometido se deben utilizar llaves {}. Como ejemplo, voy a utilizar el caso supuesto en el que necesitamos acceder a un campo de un formulario (por ejemplo "id") y no sabemos si el formulario vino por POST o GET. Lo primero que se me viene a la mente es consultar ambos arreglos $_POST y $_GET para determinar en cual existe "id":
<?php
if (isset($_POST['id'])) {
$id = $_POST['id'];
// Hacer algo con la variable $id
}
else if (isset($_GET['id'])) {
$id = $_GET['id'];
// Hacer algo con la variable $id
}
?>
Una solución más económica (en cuanto a líneas de código) es crear el nombre de la variable utilizando el campo 'REQUEST_METHOD' (que indica si el formulario vino por POST o GET) del arreglo $_SERVER utilizando llaves:
$id = ${ '_' . $_SERVER['REQUEST_METHOD']}['id'];
El resultado será:
$id = $_POST['id'];
Si el formulario vino por POST o:
$id = $_GET['id'];
Si el formulario vino por GET.