Código PHP:
Mmm, Abimael se entusiasmó tanto que desde hace una página no ha dejado que nadie más lance ningún tiro. Ver original
<?php
| ||||
Respuesta: Juego: "¿Dónde está el error?" El problema de file_get_contents podría resolverse así:
Código PHP:
Mmm, Abimael se entusiasmó tanto que desde hace una página no ha dejado que nadie más lance ningún tiro. Ver original
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Cita: Muy buena david Y la otra forma de resolver sería usando dirección completa, es decir
Código PHP:
Ver original
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Cita: Ahora la razón de por qué el segundo ejemplo no funciona es porque extract lo que hace es leer el valor que tiene el array y se lo asigna a una nueva variable y lo que eso hace es limitar la variable a que sea legible dentro de la función solamente, por el ámbito de las variables. Es como si extract lo que hiciera es esto
Iniciado por metacortex Eh... No hagan caso a la burrada anterior. Si usamos $GLOBALS, el nombre de la variable se convierte en la clave de un array. Le asignamos un nuevo valor a la clave y listo.
Código PHP:
Ver original
Código PHP:
Ver original
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| ||||
Respuesta: Juego: "¿Dónde está el error?" (2 días después...) Esto quedó medio trancado. Al responder tú mismo la pregunta (y no otros) ya no se sabe a ciencia cierta quién dará el próximo tiro, jejeje. Retomemos lo siguiente: - Quien responda un tiro es quien tiene el derecho a lanzar el siguiente basándose en las reglas. - Si pasado un tiempo prudencial no hay tiro, cualquiera puede lanzarlo. - El tiro consiste en: postear un pedazo de código con máximo 8 líneas, máximo 3 errores deliberados. - La respuesta debe ser una explicación verbal de cuál es el error. El código arreglado es complementario y opcional. Si me lo permiten lanzaré el próximo tiro, con la finalidad de que siga el curso normal: Pregunta: ¿Por qué no se imprime la lista completa en este código?.
Código PHP:
Ver original PD: A los nuevos participantes, favor leer el primer post con las reglas. |
| |||
Respuesta: Juego: "¿Dónde está el error?" Porque se está sobreescribiendo contínuamente la variable lista, se debería concatenar con un .=, dentro de la función (si es así, avisad, que no estoy nunca seguro de mis respuetas )
__________________ Buscando ideas para proyectos.... Esperando a tener 18 años.... |
| ||||
Respuesta: Juego: "¿Dónde está el error?" echo $lista esta fuera del foreach, por eso imprime solo el ultimo. Al salir del bucle imprime el resultado y como no se concatena los resultados imprime solo el ultimo... Saludos
__________________ "La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein objetivophp.com,twitter.com/objetivophp |
| |||
Respuesta: Juego: "¿Dónde está el error?" Cuando programo me salen constantemente errores, pero no se si sabre poner uno complicadillo ahora...
Código PHP:
Ver original Voy a ejecutarlo ahora y pongo el error que da (espero que no sea muy fácil ) EDITO: mejor no pongo el error, que si no, es muy fácil, pero lo que debería dar como resultado es: Array ( [0] => valor1 [1] => valor2 [2] => valor3 ) Array ( [0] => valor1 [1] => valor2 [2] => valor3 ) Array ( [0] => valor1 [1] => valor2 [2] => valor3 )
__________________ Buscando ideas para proyectos.... Esperando a tener 18 años.... |
| ||||
Respuesta: Juego: "¿Dónde está el error?" El problema es que usar $$valor[] es ambiguo para el intérprete; ya que no puede determinar si se trata de usar el valor de $valor como nombre de variable, o usar $valor[]. En este caso debería usarse la sintaxis ${$valor}[] para resolver esa ambigüedad.
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| |||
Respuesta: Juego: "¿Dónde está el error?" El error es que, mientras tú erróneamente quieres agregar elementos al array $$valor, PHP interpreta como que quieres setear la variable cuyo nombre es el valor de $valor[], lo cuál genera tremendo error. Al usar variables variables, todo lo que va tras el primer signo de $ es tomado como nombre de la variable. En este caso PHP al toparse con $$valor[] quiere buscar primero el valor de $valor[] para luego crear la variable cuyo nombre sea el valor encontrado. La solución es usar llaves:
Código PHP:
Ver original |
| |||
Respuesta: Juego: "¿Dónde está el error?" Los dos habéis acertado, y supongo que David, por ser el primero, es a quien le toca
__________________ Buscando ideas para proyectos.... Esperando a tener 18 años.... |
| ||||
Respuesta: Juego: "¿Dónde está el error?" ¿Qué elementos de esta lista son funciones?
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| |||
Respuesta: Juego: "¿Dónde está el error?" abs, array_rand, count, is_array, print_r, sort, strval, unserialize, virtual. array() está dentro del apartado de funciones del manual de PHP, y acepta parámetros y retorna un resultado (que es el array creado), así que supongo que entra también el conjunto de funciones. Pero en el mismo manual, en http://www.php.net/manual/en/language.types.array.php, se indica que array() es una construcción, no una función, y viéndola bien, pues sus parámetros no llevan la forma común de las demás "funciones". Así que mi tiro va porque no es una función. Saludos, EDIT (x5)! Oooook, así queda mi respuesta, no la tocaré más Última edición por okram; 26/12/2010 a las 11:54 |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Oh, yo pensé que tu contestaste, solo que aclaré el porque en si no funciona. Yo pensé que lo estabas preparando.
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Jaja, con que empty() se te había colado. Correcto, tu turno okram.
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| |||
Respuesta: Juego: "¿Dónde está el error?" * En realidad se me colaron un par más Aquí va mi tiro. Código PHP:
Código:
La primera llamada a definido(), como es de esperarse, devuelve el equivalente a true (Imprime el valor de la variable). Luego, la segunda llamada inesperadamente devuelve exactamente lo mismo. ¿Por qué? string(32) "$foo['tercera'] está definido: C" string(32) "$foo['tercera'] está definido: C" Última edición por okram; 26/12/2010 a las 15:21 Razón: Cambio de [HIGHLIGHT] por [PHP] |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Si bien en la segunda llamada redefines $foo, esta ahora pasa a ser una cadena (string), y cuando se utiliza una cadena como indice, isset siempre retorna verdadero. Como existe la particularidad de que los strings, en realidad son un arreglo de caracteres, y se puede acceder a un caracter de la forma $cadena[3], en este caso evalua $GLOBALS['GLOBALS']['foo'][0], y justo como empieza con C de Cualquier Carácter parece que fuera la misma salida ahora si en vez de evaluar tercera evaluáramos por segunda obtendríamos diferencias entre la primer y segunda salida... bueno creo que tiene que ver con la particularidad de como se manipulan los strings en php. Saludos
__________________ "La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein objetivophp.com,twitter.com/objetivophp |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Eso ocurre porque un string puede comportarse como un array, y puede usarse la sintaxis de corchetes para obtener cualquier carácter. En caso de que el "índice" sea de un tipo diferente a entero, se convierte a entero. Explicado esto, en la segunda asignación $foo se convierte en un string, por lo que $foo[0] ('tercera' al convertirse a entero se vuelve 0) devuelve 'C' (el primer carácter de la cadena)
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| |||
Respuesta: Juego: "¿Dónde está el error?" Pues sí, ambos tienen toda la razón. Un string siempre equivale a 0 al convertirlo a entero, a menos que el string empiece con dígitos, en cuyo caso éstos son los que le dan el valor al entero final. Como bien hicieron notar portalmana y David, el texto "CUALQUIER TEXTO..." usado para redefinir $foo era clave, pues al solicitar $foo['tercera'] en realidad se estaba solicitando $foo[0], y esto hace referencia al primer caracter que era en este caso una C, por lo que daba la falsa impresión que el resultado era el mismo. Ahora, otra cosa que quería que se note con este tiro, es que $GLOBALS es una matriz que engloba y hace referencia a TODAS las variables del script, y por ende al decir todas, se entiende que se hace referencia a sí misma. Por lo tanto, es igual decir $foo que $GLOBALS['foo'], que $GLOBALS['GLOBALS']['foo'] o $GLOBALS['GLOBALS']['GLOBALS']['GLOBALS'] ...... ['GLOBALS']['foo']. Además, es una variable superglobal que no necesita de la palabra clave global dentro de una función para estar disponible. Finalmente, ya que no lo dijeron. La solución para evitar este tipo de confusiones es revisar también el tipo de variable que estamos evaluando con isset(), o en su defecto, al tratarse en este caso e arrays, usar la función que está destinada a ello: Código PHP: El turno va entonces para portalmana |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Bueno ni idea de que poner pero para que esto no se tranque ponemos algo de nivel super básico...
Código PHP:
Porque da erróneo si p se encuentra en $palabra... Ver original
__________________ "La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein objetivophp.com,twitter.com/objetivophp |
| |||
Respuesta: Juego: "¿Dónde está el error?" Porque la función devuelve 0, que es la posición en la que la letra "p" se encuentra en esa palabra. Al hacer una comparación flexible (con ==), es verdadero que 0 == false. strpos() debe usarse siempre con comparaciones estrictas (===), osea: Código PHP: |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Exacto okram , strpos retorna la posición y en este caso es 0 lo cual es evaluado como falso con el operador == pues no compara tipos., cosa que si hace ===. continua okram.
__________________ "La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein objetivophp.com,twitter.com/objetivophp Última edición por portalmana; 26/12/2010 a las 19:08 Razón: falto continua okram. |
| |||
Respuesta: Juego: "¿Dónde está el error?" Una facilita. Tenemos una serie de números, quiero determinar el mayor y menor: Código PHP:
Código:
¿Por qué esos números? int(14) int(1) |
| ||||
Respuesta: Juego: "¿Dónde está el error?" El arreglo a cada numero antepone un 0 (cero), al anteponer un cero a cualquier entero php entiende que es un numero octal, por lo cual si pasáramos el arreglo a decimal, seria 6,9,13,14 y el ultimo el 018 equivale a 1 pues si un dígito inválido es pasado a un entero octal (p.ej. 8 o 9), el resto del número es ignorado. con lo cual evalúa 01 que es 1... La función retorna un entero por lo cual esta correcto que retorne 14 y 1 pues son máximo y mínimo del arreglo octal.
__________________ "La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein objetivophp.com,twitter.com/objetivophp |
| |||
Respuesta: Juego: "¿Dónde está el error?" Sólo agregar que, además, anteponiendo 0x obtenemos un número hexadecimal (base 16). Como ejemplo: es verdadero que 60 == 0x3c; Turno de portalmana Última edición por okram; 26/12/2010 a las 21:36 |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Ufff, ni dejan pasar segundos que ya está la respuesta Bueno vamos a ver si me da tiempo a contestar la pregunta que viene
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| ||||
Respuesta: Juego: "¿Dónde está el error?" <saludos> han estado activos, no he respondido nada pero a ratos paso y miro en que van, y esta genial cada item que se ha posteado, hasta la saciedad sigan y cuando tenga un respiro (espero) pasare no solo de espectador </saludos>
__________________ "Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente." Visita piggypon.com |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Que alguien tire por mi... que recién pude agarrar una conexión... estaba sin internet... Saludos
__________________ "La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein objetivophp.com,twitter.com/objetivophp |
Etiquetas: |