Foros del Web » Programando para Internet » PHP »

Confección de test/quiz sobre conocimientos de PHP.

Estas en el tema de Confección de test/quiz sobre conocimientos de PHP. en el foro de PHP en Foros del Web. Introducción: Gracias a un interesante tema donde se buscaba algún test sobre conocimientos de PHP y dado la falta de alguno "bueno", les invito a ...

  #1 (permalink)  
Antiguo 14/09/2006, 18:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Confección de test/quiz sobre conocimientos de PHP.

Introducción:
Gracias a un interesante tema donde se buscaba algún test sobre conocimientos de PHP y dado la falta de alguno "bueno", les invito a que todos participemos de la creación de un test/quiz sobre PHP.

Ojetivo:
Crear una batería de preguntas con opciones para evaluar conocimientos generales sobre PHP. En lo posible variada y afirmando los conceptos base de PHP. Orientado a cualquier nivel de usuario de PHP.

Condiciones:
Una pregunta, temática a elección clara y concisa -> 4 opciones máximo, minimo 3 posibles e indicar la respuesta correcta.

El formato .. como gusten; igualmente se sugiere:

Pregunta

1. opción
2. opción
3. opción
4. opción


Respuesta correcta: 4

Se recomienda una pregunta por tema, así facilitaremos la discursión individual de las mismas. Si tienen más preguntas que aportar tan sólo continuen respondiento este mensaje para publicarlas.

Pueden indicar cualquier tipo de comentario o referencia que "demuestre" si es necesario con argumentos la respuesta dada como válida.

Fases del "proyecto":

1) Recoger el máximo de preguntas.**

2) Selección de las preguntas, descartar erroneas o "afinar" algunas. Toda pregunta propuesta podrá ser discutida en este mismo tema (haciendo alusión a la misma mediande la opción/botón "Citar" de cada mensaje).

3) Definir y seleccionar un grupo el total de preguntas para el test (20-30? preguntas?). En caso de tener una "avalancha" de preguntas propuestas se podría llegar a clasificar por temáticas y realizar "test" más concretos sobre algunas áreas concretas.

4) Crear un tema con el "test" (preguntas) y otro con sus "respuestas" para que se pueda "usar" dicho test. Todos los participantes de las preguntas seleccionadas para el test serán mencionados en el mismo.

** Demos un plazo de un "mes" para el proceso, si pasado ese tiempo no hay movimiento o no hay "quorum" para generar un pequeño "test decente". Dejamos el mensaje como quede (desmarcandolo como "importarte").

Quedan invitados a participar.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 15/09/2006 a las 12:06
  #2 (permalink)  
Antiguo 14/09/2006, 19:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pregunta:

¿Cual es el proceso de ejecución de PHP en una aplicación tipo "web"?

1. El cliente (navegador) pide la página a PHP, este se ejecuta en el lado del servidor y su resultado se entrega al cliente.
2. El cliente pide la página al servidor HTTP, este entrega el código PHP al cliente, se ejecuta en el cliente el código PHP y su resultado se visualiza directamente.
3. Se pide la página/script desde el cliente, el servidor HTTP le pasa el proceso a PHP, este al terminar lo entrega al servidor HTTP quien finalmente entrega el resultado al cliente.
4. Ninguna de las anteriores.

Respuesta: 3



Argumentos:

La respuesta 1 podría "ser" correcta .. pero la más completa es la 3 pues se hace mención al "servidor HTTP" que es como ejecutamos PHP bajo este en una aplicación "web" común.

La respuesta 2 indica que el proceso se hace en el "cliente", esto no es cierto.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 15/09/2006, 09:50
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
¿Un array es..?

1.Es un conjunto de caracteres alfanumericos.
2.Es un sistema para convertir una variable en una constante.
3.Es un conjunto de elementos.
4.Es una forma de crear una lista ordenada ascendente/descendente.

Respuesta Correcta:3

P.D: Sé que es bastante simple y facil pero bueno,no soy un experto en esto..como para hacer una pregunta complicada.Cluster se te olvido decir que iva dirigido hacia novatos y expertos,nose si te parecio bien pero si crees que la idea estaba bien ponlo en objetivo,Un Saludo!!!!
  #4 (permalink)  
Antiguo 15/09/2006, 10:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por limboings Ver Mensaje
¿Un array es..?

1.Es un conjunto de caracteres alfanumericos.
2.Es un sistema para convertir una variable en una constante.
3.Es un conjunto de elementos.
4.Es una forma de crear una lista ordenada ascendente/descendente.

Respuesta Correcta:3

P.D: Sé que es bastante simple y facil pero bueno,no soy un experto en esto..como para hacer una pregunta complicada.Cluster se te olvido decir que iva dirigido hacia novatos y expertos,nose si te parecio bien pero si crees que la idea estaba bien ponlo en objetivo,Un Saludo!!!!
El público dirigido como decía "implicitamente" es todo el mundo. Cualquier temática da igual su complejidad, ahí veremos en función de lo que la gente publique como "preguntas" a la hora de "armar" el test como las colocamos o armamos test por "nivel" o por temáticas. Lo importante sería "tener material" en principio.

Lo que si quería hacer incapié ya que salió el tema justo con tu pregunta propuesta es:

¿Intentamos enfocar el tema a PHP .. o vamos a hacer preguntas sobre programación en general? ..

Creo que en este caso deberíamos orientar el tema hacia "programación aplicada en PHP" .. no a programación "en general" (no estaría de más .. pero nos podríamos desviar mucho sobre "PHP" si empezamos con ese tipo de preguntas).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 15/09/2006, 10:23
foo
 
Fecha de Ingreso: febrero-2006
Mensajes: 278
Antigüedad: 18 años, 2 meses
Puntos: 0
dado el siguiente codigo:

Código PHP:
<?php
session_start
();

if (empty(
$_SESSION['tipo_usuario']) || $_SESSION['tipo_usuario'] != 'admin') {
    
header ('Location: /login.php');
}

// parte protegida
echo "admin";

?>
y asumiendo que $_SESSION['tipo_usuario'] tiene el valor 'normal', se puede deducir que:

1. el usuario podria ver la parte protegida aun cuando no cuente con un usuario de tipo 'admin'
2. el usuario sera redirigido a login.php
3. el usuario podra acceder a la parte protegida, solo si tiene un usuario de tipo 'admin'

respuesta: 1

argumentos:
se debe terminar la ejecucion del script (exit, die, etc) despues de la redireccion, porque existen herramientas de seguridad o navegadores que "no entienden" la redireccion
  #6 (permalink)  
Antiguo 15/09/2006, 10:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por foo Ver Mensaje
dado el siguiente codigo:

Código PHP:
<?php
session_start
();

if (empty(
$_SESSION['tipo_usuario']) || $_SESSION['tipo_usuario'] != 'admin') {
    
header ('Location: /login.php');
}

// parte protegida
echo "admin";

?>
y asumiendo que $_SESSION['tipo_usuario'] tiene el valor 'normal', se puede deducir que:

1. el usuario podria ver la parte protegida aun cuando no cuente con un usuario de tipo 'admin'
2. el usuario sera redirigido a login.php
3. el usuario podra acceder a la parte protegida, solo si tiene un usuario de tipo 'admin'

respuesta: 1

argumentos:
se debe terminar la ejecucion del script (exit, die, etc) despues de la redireccion, porque existen herramientas de seguridad o navegadores que "no entienden" la redireccion
Un comentario sobre el argumento dado.

PHP continua la ejecución del script hasta finalizar el mismo, ahí es cuando se entrega todo lo que tenga el "buffer de salida" PHP listo para enviar, en este caso sería la cabecera HTTP enviada por la función header() de tipo "Location" (redirección) para que el "cliente" cambie la página que está viendo por otra.

Un exit; fuerza a terminar la ejecución del script en ese punto, cosa totalmente lógica pues si vamos a "cambiarnos" de script .. ya no nos interesa que nada más se pueda ejecutar y por ende (termino del script) se envian las cabeceras HTTP al cliente para que este interprete su parte.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 15/09/2006, 10:32
Avatar de sam
sam
 
Fecha de Ingreso: agosto-2001
Ubicación: Aguascalientes, México.
Mensajes: 572
Antigüedad: 22 años, 8 meses
Puntos: 2
¿Como se puede delimitar el codigo de PHP?

1. <?php .... ?>
2. <? ... ?>
3. <script language="php"> .... </script>
4. Todas las aneriores


Respuesta : 4


Saludos xD
__________________
El que tiene voluntad de aprender, encontrará siempre un maestro...
Proverbio Aleman
  #8 (permalink)  
Antiguo 16/09/2006, 17:47
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
Seguro que si doy un premio de 12000 euros al que formule una pregunta para el test,no dava tiempo a leer todo ni en un dia xD

Venga señores,formular aunque sea una pregunta que se tarda 1 minuto en hacerla y si todos aportamos algo acabara siendo un buen test..

Un Saludoo!!
  #9 (permalink)  
Antiguo 18/09/2006, 07:25
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 18 años
Puntos: 3
Variables Variable

Las variables variables son nombres de variables que se pueden establecer y usar dinámicamente, dicho de otro modo toma el valor de una variable y lo trata como el nombre de una variable.

Dado el Siguiente Ejemplo muestre seleccione el resultado correcto.
Código PHP:
$f "Foros";
$
$f "Del Web"
Opciones
Código PHP:
echo "$f ${$f}";
echo 
"$f $($f)";
echo 
"$f $[$f]";
echo 
"$f $Foros"
Respuesta: 1 y 4
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".

Última edición por the_scorpion; 18/09/2006 a las 10:01
  #10 (permalink)  
Antiguo 18/09/2006, 08:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
¿Cual es la forma correcta de imprimir el valor de la variable $foo?

a) echo "foo = $foo";
b) echo "foo = " . $foo;
c) echo 'foo = $foo';

Respuesta correcta: b

Argumentos, aunque tecnicamente a es correcto ya que imprime lo mismo, es mucho mas facil de entender el codigo cuando dejamos las variables fuera del string y usamos el caracter de concatenacion "." para unir un string.
  #11 (permalink)  
Antiguo 18/09/2006, 09:40
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Cita:
Iniciado por the_scorpion Ver Mensaje
Las variables variables son nombres de variables que se pueden establecer y usar dinámicamente, dicho de otro modo toma el valor de una variable y lo trata como el nombre de una variable.

Dado el Siguiente Ejemplo muestre seleccione el resultado correcto.
Código PHP:
$f "Foros";
$
$f "Del Web"
Opciones
Código PHP:
echo "$f ${$f}";
echo 
"$f $($f)";
echo 
"$f $[$f]";
echo 
"$f $Foros"
Respuesta: 1
La respuesta 4 también imprime bien, por ende también es valida. La pregunta habría que "afinarla" un poquito más... mi argumento: Si alguien que hace poco está con el tema y selecciona la respuesta 4 y esta se le da como incorrecto va asimilar que está mal y que la correcta es solamente la respuesta numero 1.

Cita:
Iniciado por GatorV Ver Mensaje
¿Cual es la forma correcta de imprimir el valor de la variable $foo?

a) echo "foo = $foo";
b) echo "foo = " . $foo;
c) echo 'foo = $foo';

Respuesta correcta: b

Argumentos, aunque tecnicamente a es correcto ya que imprime lo mismo, es mucho mas facil de entender el codigo cuando dejamos las variables fuera del string y usamos el caracter de concatenacion "." para unir un string.
Si bién coincido con vos, es mucho mas "delicado", la respuesta a sigue siendo valida y argumento lo mismo que con la pregunta anterior... pueden llegar a provocar confusión.

Si éste tipo de detalles no son cuidados terminaremos haciendo un test parecido a uno que se publico en el thread original y que gran parte de las preguntas eran ambiguas.

Saludos.

PD: No intento discutir con ustedes, solo es una opinión para que las preguntas sean claras y evitar valorar mal a alguien cuando éste sabe sobre el tema.
  #12 (permalink)  
Antiguo 18/09/2006, 16:52
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta:

En $Str disponemos de información acerca de un usuario, con el formato <nombre><Separador><Apellido><Separador><e-mail>. Sabiendo que la cadena separadora es $Separador, ¿cuál te parece la mejor manera de obtener cada dato por separado de entre estas opciones?

a) list ($nombre, $apellido, $email) = split($Separador, $Str);
b) list ($nombre, $apellido, $email) = explode($Separador, $Str);
c) Ambas son equivalentes
d) Ninguna

Respuesta: b (aunque split() consigue el mismo resultado, la mejor opción es usar explode(), puesto que no necesitamos perder tiempo de cómputo con exprsiones regulares)
  #13 (permalink)  
Antiguo 18/09/2006, 16:59
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Tenemos el siguiente código:

Código PHP:
if (function_exists("file_get_contents"))
    
$f file_get_contents($_f);
else
    
$f implode(file($_f), "\n"); 
¿Qué instrucción se ejecutará en PHP 4.2?

a) Ninguna
b) $f = file_get_contents("f.txt");
c) $f = implode(file($_f), "\n");
d) Imposible de determinar

Respuesta: c (file_get_contents() está disponible a partir de PHP 4.3)
  #14 (permalink)  
Antiguo 18/09/2006, 17:06
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Queremos imprimir la cadena "Hola mundo". ¿Cuál es la mejor opción de las siguientes?

a) printf("Hola mundo");
b) echo 'Hola mundo';
c) print 'Hola mundo';
e) echo "Hola mundo";

Respuesta: b (c es casi tan rápida, pero el hecho de que print devuelve el valor 1 la penaliza sensiblemente. a es bastante más lenta y debería utilizarse para enviar texto con formato, mientras que e debería utilizarse si se añade a la expresión el uso de variables).
  #15 (permalink)  
Antiguo 18/09/2006, 20:41
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Cita:
Iniciado por GikaJavi Ver Mensaje
Respuesta: b (aunque split() consigue el mismo resultado, la mejor opción es usar explode(), puesto que no necesitamos perder tiempo de cómputo con exprsiones regulares)
Esta pregunta cae en la ambiguedad (como se hablo en el otro thread), si hay 2 respuesta que pueden calificar tecnicamente el que realice el test se puede "equivocar" sin estar equivocado... es igual que "si pero no". Ambas funciones consiguen el mismo resultado, por ende ambas estan bien y la respuesta deberia ser la c (Ambas son equivalentes).

Cita:
Iniciado por GikaJavi Ver Mensaje
Respuesta: c (file_get_contents() está disponible a partir de PHP 4.3)
Aquí se cae en un detalle que creo que gran mayoria de los programadores "no saben", estan al tanto y saben que se implemento despues de alguna version, pero no todos recuerdan de memoria en que version se implemento tal y cual cosa... y no saber esto no significa que sea un mal programador y basta con perder 1 minuto mirando el manual oficial.

Cita:
Iniciado por GikaJavi Ver Mensaje
Queremos imprimir la cadena "Hola mundo". ¿Cuál es la mejor opción de las siguientes?

a) printf("Hola mundo");
b) echo 'Hola mundo';
c) print 'Hola mundo';
e) echo "Hola mundo";

Respuesta: b (c es casi tan rápida, pero el hecho de que print devuelve el valor 1 la penaliza sensiblemente. a es bastante más lenta y debería utilizarse para enviar texto con formato, mientras que e debería utilizarse si se añade a la expresión el uso de variables).
Todas son equivalentes, todas son correctas... mas allá de que por logica se puede intuir de que la b es la mas rapida creo que un milisegundo no hace la diferencia y no deberiamos caer en un test de "tuning" sino en un test de conocimientos.

Si bien hasta ahora no aporte ninguna "pregunta candidata" (he pensado, pero realmente no se me ocurre que y como formular las preguntas) lo unico que quiero hacer es ayudar a hacer buenas/mejores preguntas desde mi punto de vista. No intento pelear ni criticar a nadie (ya es la segunda ves que posteo solo para marcar algunas cosas que no estoy deacuerdo y me esta dando "verguenza" el hecho de solo "criticar") solo intento que sean mejores a mi forma de ver.

Saludos y disculpen si a alguien lo molesto con mis comentarios.
  #16 (permalink)  
Antiguo 19/09/2006, 03:38
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
¿Cómo se puede evitar que se muestren errores del tipo E_WARNING al llamar a ciertas funciones php (como filesize)?

a) Borrando el mensaje de error de la pantalla.
b) Modificando la configuración del php.
c) Precediendo la función con el caracter @ (arroba).
d) No se puede evitar.

Respuesta correcta: c
  #17 (permalink)  
Antiguo 19/09/2006, 08:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
DarioDario

Para nada molestan tus comentarios (espero que nadie se los tome a mal y por ello dejen de participar). Este tema se trata de eso mismo, proponer preguntas, debatirlas y así no caer en "test" con preguntas ambigúas como ya hemos visto.

Intentemos definir preguntas que tengan una sóla respuesta válida si o sí, así evitaremos confusiones. Sé que esto cuesta (a mi me custa más poner alternativas "malas" que la buena!!) pero intentemoslo.

Un saludo, y gracias por participar a todos!.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #18 (permalink)  
Antiguo 19/09/2006, 13:17
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Cita:
Iniciado por DarioDario Ver Mensaje
Esta pregunta cae en la ambiguedad (como se hablo en el otro thread), si hay 2 respuesta que pueden calificar tecnicamente el que realice el test se puede "equivocar" sin estar equivocado... es igual que "si pero no". Ambas funciones consiguen el mismo resultado, por ende ambas estan bien y la respuesta deberia ser la c (Ambas son equivalentes).



Aquí se cae en un detalle que creo que gran mayoria de los programadores "no saben", estan al tanto y saben que se implemento despues de alguna version, pero no todos recuerdan de memoria en que version se implemento tal y cual cosa... y no saber esto no significa que sea un mal programador y basta con perder 1 minuto mirando el manual oficial.



Todas son equivalentes, todas son correctas... mas allá de que por logica se puede intuir de que la b es la mas rapida creo que un milisegundo no hace la diferencia y no deberiamos caer en un test de "tuning" sino en un test de conocimientos.

Si bien hasta ahora no aporte ninguna "pregunta candidata" (he pensado, pero realmente no se me ocurre que y como formular las preguntas) lo unico que quiero hacer es ayudar a hacer buenas/mejores preguntas desde mi punto de vista. No intento pelear ni criticar a nadie (ya es la segunda ves que posteo solo para marcar algunas cosas que no estoy deacuerdo y me esta dando "verguenza" el hecho de solo "criticar") solo intento que sean mejores a mi forma de ver.

Saludos y disculpen si a alguien lo molesto con mis comentarios.
Hola DarioDario, tus comentarios no molestan para nada. Aunque no estoy demasiado de acuerdo contingo, así que espero no te moleste mi contraréplica.

En cuanto a la primera pregunta, no estoy de acuerdo en que la c sea la correcta. La pregunta es ¿qué opción es la mejor? y por supuesto que explode() es mejor que split() en estas circunstancias. Un buen programador no debe sólo saber resolver problemas, sino que debe hacerlo de la mejor forma posible. Imagínate que siempre implementaramos algoritmos con coste exponencial para resolver problemas que tienen una solución polinomial o aún mejor. Es cierto que ambas son correctas, pero explode() es mejor y, como ya he dicho, un programador debería usar siempre que pueda la opción más eficiente.

En cuanto a la segunda pregunta, es cierto que es rebuscado conocer la versión exacta en que se incorporó la función, aunque lo importante de la pregunta es ilustrar el enunciado, y no siempre es correcto usar el manual y decidirse por una u otra opción sino que la mejor opción es colocarlas ambas mediante la alternativa (no siempre vamos a hacer aplicaciones que corran en una versión de PHP conocida a priori (pensemos en las aplicaciones prefabricadas)).

Y en la tercera pregunta volvemos a la discusión de la primera. Un programador conformista elegiría cualquiera de las respuestas, pero recuerdo que la pregunta no es 'Cuál es correcto' sino 'cuál es mejor'. Como mucho podría aceptar la respuesta c como correcta, además de la b. Pero nunca las otras dos, porque son notablemente más ineficientes (están para otros usos).

Por último quisira dar mi opinión sobre cómo creo que debería ser un test de PHP:

Si elaboramos un test de PHP, no estamos elaborando un test estrictamente de programación o scripting, sino de PHP, por lo que deberíamos hacer preguntas no tan generales de programación en sí, sino más bien cosas específicas que destacan en PHP, como lenguaje de scripting ámpliamente usado en el desarrollo web. No quiero decir con esto que debamos pensar en preguntas tan rebuscadas como las del test de Zend, pero tampoco cosas demasiado genéricas.

No sé, creo que tal vez hemos empezado a lanzar preguntas sin plantear primero cómo deberían ser esas preguntas. Ya me diréis vuestra opinión.

Un saludo.
  #19 (permalink)  
Antiguo 19/09/2006, 14:52
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
GikaJavi, yo realmente no entiendo... ¿Un programador que sabe que una función utiliza 1 kb menos de memoria y tarda 1 milesima de segundo menos, es bueno? Realmente a mi no me interesan esas cosas, si dicho programador se le da bien pensar una solución buena ante un problema ¿Para que quiero una milesima menos?. Antes que nada la aplicación/resolucion de un problema tiene que estar andando, después pensamos en optimizar y muchos programadores llegan a un buen nivel sin preocuparce en esos detalles y ese programador a mi me sigue sirviendo.

Yo NUNCA (para que quede claro ) me fije en esas cosas, me preocupo en resolver el problema despuén con una simple clase busco los cuellos de botella en el script y recien ahi optimizo... y ahora se me viene a la mente otra cosa, ¿Para que sirve que sepa esos detalles si el tipo los implementa a "raja tabla" pero termina perdiendo tiempo porque hizo una función recursiva mal?, el tema del "tunning" (como por lo general hacen) se deja a lo ultimo, pero el programador puede ser mucho mejor sin saber hacer "tunning" que uno si lo hace.

Si bien por logíca yo sé cuales funciones tardan mas o menos, no me preocupo en preguntarle eso a alguien... en todo caso si quieres "tunning", toma el tiempo de cuanto tarda esa persona en responderte lo siguiente: 72 * 11 y la persona que menos tarde es el que tiene el cerebro mejor "tuneado"... mi razón de pensar así es simple, para hacer esa cuenta muchas personas no sabén por donde empezar y pieden tiempo tratando de resolverlo como viene, otras personas empiezan a dividir el problema en problemas mas chicos y estas personas son la que sirven... si yo aparezco con un problema de otra empresa que es mostruosa, si el programador no sabé por donde empezar no sirve.

Son diferentes puntos de vista los que tenemos, yo prefiero que conozca la herramienta lo suficiente como para usarla bien, no me interesa que haga las cosas con 11 milisegundos menos.

Saludos.
  #20 (permalink)  
Antiguo 19/09/2006, 16:16
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Hola de nuevo DarioDario. Veo que no nos pondríamos de acuerdo, pensamos distinto en cuanto a lo de esas preguntas. Creo que no puedes extrapolar y dar a entender que le doy más importancia a estos "detalles" que a todo lo que citas después. Bien al contrario, estoy de acuerdo contigo en que no sirve de nada ser meticuloso con estas cosas si luego te falla el programa por otras cosas, digamos más conceptuales y casi siempre más críticas. Yo también prefiero a alguien que tenga las ideas claras a alguien que no las tenga pero sí conozca extravagancias del lenguaje. Lo que pasa es que, muy a menudo, los que conocen las extravagancias son gente que cumplen también el primer requisito. Y eso se suele conseguir con experiencia, que al fin y al cabo es conocimiento.

Y yo creí que el test era sobre conocimientos de PHP y no sobre conceptos generales de programación. Por eso las preguntas que se me ocurrieron (tal vez poco originales) son algo raras, porque hacen más bien referencia a cómo PHP te permite hacer distintas cosas y cuál es la mejor en cada situación (si todas fueran exactamente iguales, eso dificultaría el lenguaje de forma absurda).

Así, más arriba se propone la pregunta ¿un array es..?. Es una pregunta que, en mi opinión, no debe aparecer en un test de PHP, puesto que cualquier programador responderá correctamente aunque no sepa ni de la existencia de PHP (un array es un concepto básico en programación, no en PHP).

En cambio la pregunta ¿Cual es el proceso de ejecución de PHP en una aplicación tipo "web"? me parece muy acertada en un test de PHP (No creo que muchos programadores que hayan trabajado toda la vida en VB haciendo aplicaciones de escritorio sepan muy bien cómo funciona esto).

Bueno, no quisiera desviar más este interesante tema discutiendo sobre lo anterior, así que propongo una nueva pregunta para el test.

PREGUNTA:

Tenemos este script:
Código PHP:
<?
header
("content-type: text/plain");
$n=readfile("contenido.html");
?>
El archivo contenido.html se halla en el mismo directorio y su contenido es:
Código HTML:
<html><body>Hola soy un texto con <b>negrita</b> en negrita.</body></html> 

¿Qué se visualiza en el navegador cliente cuando se solicita el script anterior?


a) Nada (página en blanco)
b) <html><body>Hola soy un texto con <b>negrita</b> en negrita.</body></html>
c) Hola soy un texto con negrita en negrita.

Respuesta: b (la cabecera content-type: text/plain provoca que los navegadores no interpreten el marcado que readfile envia como código HTML)
  #21 (permalink)  
Antiguo 19/09/2006, 16:22
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
PREGUNTA:

Código:

Código PHP:
$a='Hola mundo';
$b=&$a;
$a=str_ireplace('hola Mundo''Hello world'$a);
$c=&$b;
$c='hola mundo'
¿Cuánto vale $a?

a) "Hola mundo"
b) "hola mundo"
c) "Hello world"
d) "hola Mundo"

Respuesta: b ($c se convierte en alias de $b que a su vez lo es de $a. Como las tres enlazan al mismo contenido, un cambio en cualquiera de ellas afecta a las demás)
  #22 (permalink)  
Antiguo 19/09/2006, 16:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
GikaJavi
No sé, creo que tal vez hemos empezado a lanzar preguntas sin plantear primero cómo deberían ser esas preguntas. Ya me diréis vuestra opinión.
Por mi parte en una primera "fase" para generar un "test" .. creo que deberíamos optar por como comento en el enunciado de este "proyecto": Una pregunta -> una respuesta y a ser posible que sólo exista si o sí una respuesta.

De todas formas, cada cual que lanzce sus preguntas y argumente sus respuestas (sobre todo en el caso de exisitir "sutiles" diferencias). Conforme tengamos material .. ahí las clasificamos si corresponde para generar vários test de diferentes niveles de dificultad.

Cita:
GikaJavi
Y yo creí que el test era sobre conocimientos de PHP y no sobre conceptos generales de programación.
Así es .. centremos las preguntas sobre el lenguaje PHP. Salió una pregunta sobre conceptos generales de programación y ya hice mi comentario al respecto: evitemoslas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 19/09/2006 a las 16:29
  #23 (permalink)  
Antiguo 19/09/2006, 16:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por GikaJavi Ver Mensaje
Hola de nuevo DarioDario. Veo que no nos pondríamos de acuerdo, pensamos distinto en cuanto a lo de esas preguntas. Creo que no puedes extrapolar y dar a entender que le doy más importancia a estos "detalles" que a todo lo que citas después. Bien al contrario, estoy de acuerdo contigo en que no sirve de nada ser meticuloso con estas cosas si luego te falla el programa por otras cosas, digamos más conceptuales y casi siempre más críticas. Yo también prefiero a alguien que tenga las ideas claras a alguien que no las tenga pero sí conozca extravagancias del lenguaje. Lo que pasa es que, muy a menudo, los que conocen las extravagancias son gente que cumplen también el primer requisito. Y eso se suele conseguir con experiencia, que al fin y al cabo es conocimiento.

Y yo creí que el test era sobre conocimientos de PHP y no sobre conceptos generales de programación. Por eso las preguntas que se me ocurrieron (tal vez poco originales) son algo raras, porque hacen más bien referencia a cómo PHP te permite hacer distintas cosas y cuál es la mejor en cada situación (si todas fueran exactamente iguales, eso dificultaría el lenguaje de forma absurda).

Así, más arriba se propone la pregunta ¿un array es..?. Es una pregunta que, en mi opinión, no debe aparecer en un test de PHP, puesto que cualquier programador responderá correctamente aunque no sepa ni de la existencia de PHP (un array es un concepto básico en programación, no en PHP).

En cambio la pregunta ¿Cual es el proceso de ejecución de PHP en una aplicación tipo "web"? me parece muy acertada en un test de PHP (No creo que muchos programadores que hayan trabajado toda la vida en VB haciendo aplicaciones de escritorio sepan muy bien cómo funciona esto).

Bueno, no quisiera desviar más este interesante tema discutiendo sobre lo anterior, así que propongo una nueva pregunta para el test.

PREGUNTA:

Tenemos este script:
Código PHP:
<?
header
("content-type: text/plain");
$n=readfile("contenido.html");
?>
El archivo contenido.html se halla en el mismo directorio y su contenido es:
Código HTML:
<html><body>Hola soy un texto con <b>negrita</b> en negrita.</body></html> 

¿Qué se visualiza en el navegador cliente cuando se solicita el script anterior?


a) Nada (página en blanco)
b) <html><body>Hola soy un texto con <b>negrita</b> en negrita.</body></html>
c) Hola soy un texto con negrita en negrita.

Respuesta: b (la cabecera content-type: text/plain provoca que los navegadores no interpreten el marcado que readfile envia como código HTML)
Cual es el cometido de hacer:

$n=readfile()

Siendo readfile() una función que entrega al buffer de salida de PHP todo el contenido que lea del archivo indicado?. Sobraría la asignación a esa variable pues no hace nada ni en el ejemplo la usas (podría llegar a confundir).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #24 (permalink)  
Antiguo 19/09/2006, 16:54
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Cita:
Cual es el cometido de hacer:

$n=readfile()

Siendo readfile() una función que entrega al buffer de salida de PHP todo el contenido que lea del archivo indicado?. Sobraría la asignación a esa variable pues no hace nada ni en el ejemplo la usas (podría llegar a confundir).
El cometido de $n era simplemente confundir al que hace el test. No influye para nada en la pregunta formulada, pero alguien que no tenga claros los conceptos necesarios para acertar la respuesta puede que le dé vueltas al significado de $n en vano. En cambio, los que tengan claro el código (como veo que es tu caso) simplemente ignorarán su presencia.

Aprovecho para hacer una nueva pregunta (veo que soy el único que se anima).

PREGUNTA:

¿Cómo se define una variable de tipo string en PHP?

a) char $str[];
b) String $str;
c) En PHP no se definen variables explícitamente.
d) DIM $str as String; (Siempre y cuando se haya declarado OPTION EXPLICIT al principio del script)

Respuesta: c
  #25 (permalink)  
Antiguo 19/09/2006, 17:01
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
La última por hoy:

PREGUNTA:

Tenemos el siguiente fragmento de código:
Código PHP:
$a="20";
$b=$a 5
¿Cuál es el valor de $b?

a) "25"
b) 25
d) "205"
e) Ninguno (no se puede sumar un número a una cadena)

Respuesta: b (PHP internamente trata de convertir la cadena "25" a un tipo numérico para sumarla con el entero 5, con lo que el resultado es el entero 25 (tipo entero)
  #26 (permalink)  
Antiguo 19/09/2006, 17:52
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
PHP es un Lenguaje de Programacion Estructurada u Orientada a Objetos ?
a) Netamente Programacion Estructurada.
b) Netamente POO.
c) Soporta Ambos paradigmas.
d) Soporta Ambos paradigmas. Y a medida que han salido nuevas versiones se hace mas fuerte en la POO.

Respuesta:
d). PHP soporta ambos paradigmas de programacion, pero en las sucesivas versiones hace incapie cada vez mas en la Programacion Orientada a Objetos. Ejemplo de esto es PHP5 que tiene grandes mejoras respecto a PHP4, como encapsulamiento, etc.
__________________
| Cabeza De Raton |
  #27 (permalink)  
Antiguo 20/09/2006, 12:06
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 3 meses
Puntos: 2
Cita:
Iniciado por GikaJavi Ver Mensaje
Así, más arriba se propone la pregunta ¿un array es..?. Es una pregunta que, en mi opinión, no debe aparecer en un test de PHP, puesto que cualquier programador responderá correctamente aunque no sepa ni de la existencia de PHP (un array es un concepto básico en programación, no en PHP).
Bueno esa pregunta la hize yo,la hize porque yo no sé de programacion generica,solo estoy metido en html/xml,php y mysql por lo que no sabia que un array era un concepto de programacion,que quizas lo sea en c o en VB o algo de esto,pero es que yo no tengo ni idea de estos lenguajes,si os parece muy generica no se pone y punto,que no se diga que por esta pregunta el test perdio prestigio,asi pues ante las "criticas" hacia mi pregunta (la verdad que las esperaba) procedo ha realizar otra pregunta:

¿Que resultado devuelve el siguiente codigo?
Código PHP:
$a"a";
$
$a="b";
$$
$a="c";
$$$
$a="d";
echo 
$a
1)Devuelve "a"
2)Devuelve "b"
3)Devuelve "c"
4)Devuelve "d"
Respuesta correcta: 2

Explicacion: Devuelve "b" por que $a tiene un valor de "a",$$a es una variable variable de $a por lo que el valor de $a pasa a ser una variable,asi que el resultado sera "b" por que se reescribe sobre la variable $a.

Un Saludo!
  #28 (permalink)  
Antiguo 20/09/2006, 12:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
limboings

Bueno esa pregunta la hize yo,la hize porque yo no sé de programacion generica,solo estoy metido en html/xml,php y mysql por lo que no sabia que un array era un concepto de programacion,que quizas lo sea en c o en VB o algo de esto,pero es que yo no tengo ni idea de estos lenguajes,si os parece muy generica no se pone y punto,que no se diga que por esta pregunta el test perdio prestigio,asi pues ante las "criticas" hacia mi pregunta (la verdad que las esperaba) procedo ha realizar otra pregunta:
No te molestes por recibir "comentarios" más que críticas. Estamos "definiendo" sobre la marcha la composición de las pregunta que irán en el futuro test. Ojala el foro de "Programación" hiciera lo mismo tal vez y sacase su própio test sobre conocimientos generales de programación ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #29 (permalink)  
Antiguo 20/09/2006, 13:43
Avatar de seik!  
Fecha de Ingreso: mayo-2006
Mensajes: 492
Antigüedad: 18 años
Puntos: 6
De acuerdo =)

¿Que realiza la siguiente linea de codigo?:
Código PHP:
if (isset($codigo)){} 
Código:
a- Recorre un arreglo con de nombre "$codigo".
b- Genera una varible, en este caso "$codigo".
c- Verifica si la variable "$codigo" trae algun valor diferente de nulo.
d- Ninguna de las anteriores.
Respuesta letra C.

saludos
__________________
sEIK! -Chile-
Analista Programador.
  #30 (permalink)  
Antiguo 20/09/2006, 14:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por seik! Ver Mensaje
¿Que realiza la siguiente linea de codigo?:
Código PHP:
if (isset($codigo)){} 
Código:
a- Recorre un arreglo con de nombre "$codigo".
b- Genera una varible, en este caso "$codigo".
c- Verifica si la variable "$codigo" trae algun valor diferente de nulo.
d- Ninguna de las anteriores.
Respuesta letra C.

saludos
mm La respuesta sería "ninguna de las anteriores" (D)

isset() sólo valida la existencia de una variable (mejor dicho devuelve True si existe .. false sino, el valor no es chequeado aunque sea un NULL o 0 o cadena vacia '').. sería empty() la que funciona como describes en la respuesta C (valor diferente de nulo, 0 o cadena vacia y por ende también su existencia).

La respuesta a este tipo de preguntas también sería recomendable que fuese del tipo "Arroja "false" o arroja "true" (falso o verdadero), por qué aplicado con el "if()" realmente no "verifica" (eso sería el sentido que le dás junto con el resto de lógica) sino que devuelve un "boolean" según corresponda.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 20/09/2006 a las 14:23
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 16:18.