Test cuestionario de PHP - the question form
Preguntas: 16 · 10 minutos
1. Dado `$json = '{""theme"":""dark""}';`, ¿qué expresión lo decodifica como un arreglo asociativo en lugar de un objeto?
json_decode($json, true)
json_parse($json)
json_decode($json, false)
json_encode($json, true)
2. En un flujo de control normal, ¿cuál es el propósito de un bloque `finally` utilizado con `try` y `catch`?
Se ejecuta únicamente cuando no ocurre ninguna excepción.
Se ejecuta después del manejo de try/catch, haya ocurrido o no una excepción, por lo que resulta útil para tareas de limpieza.
Convierte cada excepción en una advertencia.
Vuelve a intentar automáticamente el código del bloque `try`.
3. ¿Qué comparación verifica si dos valores de PHP tienen tanto el mismo valor como el mismo tipo?
El operador de asignación, un solo signo igual (`=`)
El operador de igualdad no estricta, dos signos igual (`==`)
El operador de desigualdad, un signo de exclamación seguido de un signo igual (`!=`)
El operador de igualdad estricta, tres signos igual (`===`)
4. ¿Qué valor tiene `$total` después de ejecutar este código: `$total = 0; foreach ([2, 4, 6] as $n) { $total += $n; }`?
12
8
10
6
5. Una consulta PDO usa un valor recibido de un formulario. ¿Qué patrón reduce mejor el riesgo de inyección SQL?
Concatenar el valor en la consulta SQL después de eliminar los espacios.
Preparar una sentencia con un marcador de posición y luego vincular o pasar el valor al ejecutarla.
Colocar el valor entre comillas dobles en la cadena SQL.
Convertir la sentencia SQL completa con `htmlspecialchars` antes de ejecutarla.
6. Una página contiene `$name = $_GET['name'] ?? 'Guest';`. ¿Qué se asigna a `$name` cuando el parámetro `name` está ausente?
La cadena literal ""name""
Una cadena vacía
El valor booleano false
La cadena ""Guest""
7. ¿Cómo se debe agregar un tipo de retorno entero a una función PHP llamada `total` que no recibe argumentos?
Colocar una flecha antes del tipo: `function total() -> int { return 5; }`
Colocar el tipo antes del nombre de la función: `function int total() { return 5; }`
Agregar dos puntos y el tipo después de la lista de parámetros: `function total(): int { return 5; }`
Comenzar la declaración con el tipo: `int function total() { return 5; }`
8. ¿Qué instrucción asigna correctamente la cadena ""Ada"" a una variable PHP llamada user?
Una asignación sin prefijo: `user = ""Ada"";`
Una asignación con el prefijo de signo de dólar: `$user = ""Ada"";`
Una declaración al estilo JavaScript: `let $user = ""Ada"";`
Una asignación con dos puntos y signo igual: `$user := ""Ada"";`
9. El código está dentro del espacio de nombres `App`. Sin agregar una instrucción `use`, ¿qué nombre hace referencia explícita a la clase global `DateTime` de PHP?
App::DateTime
DateTime::global
\DateTime
namespace\DateTime\global
10. ¿Qué etiqueta de apertura es la forma estándar de iniciar un bloque de código PHP?
Una etiqueta de apertura al estilo HTML escrita como `<php>`
La etiqueta de apertura completa estándar escrita como `<?php`
La etiqueta de apertura corta escrita como `<?`
Un elemento script escrito como `<script php>`
11. Dado `$user = ['role' => 'admin', 'active' => true];`, ¿qué expresión obtiene el valor `admin`?
Acceso a una propiedad de objeto mediante `$user->role`
Acceso numérico al arreglo mediante `$user[0]`
Sintaxis de llamada a función mediante `$user(role)`
Acceso mediante clave asociativa usando `$user['role']`
12. Falta un archivo de configuración obligatorio. ¿Cuál es la diferencia clave de comportamiento entre `require` e `include` en esta situación?
`include` vuelve a intentar cargar el archivo automáticamente, mientras que `require` no lo hace.
`require` crea un archivo de reemplazo vacío, mientras que `include` lo omite.
No hay ninguna diferencia de comportamiento cuando falta el archivo.
`require` detiene la ejecución normal del script, mientras que `include` generalmente genera una advertencia y permite que la ejecución continúe.
13. Un nombre de usuario proporcionado por un visitante se insertará en un contexto de texto HTML. ¿Qué método es el más adecuado para escaparlo antes de mostrarlo?
Usar `htmlspecialchars($name, ENT_QUOTES, 'UTF-8')`.
Usar `urlencode($name)`.
Usar `addslashes($name)`.
Usar `strip_tags($name)` como única protección.
14. Una variable `$count` se declara fuera de una función. El código dentro de la función intenta leer `$count` sin recibirla como parámetro ni declararla como global. ¿Cuál es la mejor explicación del problema?
Las variables de PHP solo pueden contener cadenas dentro de las funciones.
Las funciones pueden leer variables globales, pero no pueden devolverlas.
El alcance de la función no proporciona automáticamente acceso a esa variable global.
Primero debe convertirse la variable en una constante.
15. ¿Qué operador concatena dos cadenas en PHP?
El operador punto (`.`)
El operador ampersand (`&`)
El operador de suma (`+`)
El operador de resolución de ámbito (`::`)
16. Una página PHP necesita crear o reanudar una sesión y luego enviar HTML. ¿Qué orden es generalmente correcto?
Enviar primero el HTML y luego llamar a `session_destroy()`.
Llamar a `setcookie()` después de cerrar el proceso de PHP.
Llamar a `session_start()` antes de cualquier salida que envíe los encabezados de la respuesta.
Colocar `session_start()` dentro de la etiqueta HTML final.