Código PHP:
¿Porque imprime cierto? Ver original
<?php if("asdf" == 0) echo 'cierto'; else echo 'falso';
| ||||
Respuesta: Juego: "¿Dónde está el error?"
Código PHP:
¿Porque imprime cierto? 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?" Por lo mismo que ya mencioné en el mensaje #110 de este hilo . Cuando un string se convierte a entero, el valor de éste es dado por los primeros caracteres numéricos del string. En tu código, al no haber caracteres numéricos al inicio del string el valor del entero final es 0. Esto está muy bien explicado aqui: http://www.php.net/manual/en/languag...ing.conversion (Lectura recomendada en inglés, pues la traducción en español no es fiel al manual original) Saludos, |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Solo queria lanzar uno para ver si alguien contestaba algo diferente, pero ya que lo hiciste te toca También aquí hay más detalle http://php.net/manual/en/language.op...comparison.php
__________________ 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?" Tengo un array con 3 frutas y una función que las traduce a inglés. Código PHP:
Código:
...lo que indica que el script no funcionó. ¿Qué está mal? Array ( [0] => manzana [1] => platano [2] => naranja ) Última edición por okram; 27/12/2010 a las 19:40 |
| ||||
Respuesta: Juego: "¿Dónde está el error?" foreach trabaja con una copia del array. Podría usarse la sintaxis foreach($frutas as $indice => &$fruta): para obtener el resultado esperado.
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Se aprende mas con estos jueguitos que preguntando... Muy Buena idea...
__________________ "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?" La siguiente función tiene como propósito persistir un valor en las sucesivas llamadas, pero tiene un error:
Código PHP:
Ver original
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Si pongo ejemplos pierde la gracia, jaja.
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Correcto. Esto se esperaría que imprima "texto" pero no imprime nada:
Código PHP:
Ver original
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| |||
Respuesta: Juego: "¿Dónde está el error?" Este será un poquito largo Código PHP:
Código:
Resultado obtenido:La variable $numero_0 NO existe La variable $numero_1 existe y su valor es 1 La variable $numero_2 NO existe La variable $numero_3 existe y su valor es 3 La variable $numero_4 NO existe La variable $numero_5 existe y su valor es 5 La variable $numero_6 NO existe
Código:
¿Qué salió mal? La variable $numero_0 existe y su valor es 0 La variable $numero_1 existe y su valor es 1 La variable $numero_2 existe y su valor es 2 La variable $numero_3 existe y su valor es 3 La variable $numero_4 existe y su valor es 4 La variable $numero_5 existe y su valor es 5 La variable $numero_6 existe y su valor es 6 |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Que al ejecutar unset() en ese contexto lo único que se borra es la referencia creada con global. Podría usarse unset($GLOBALS["numero_$numero"]); para obtener el resultado esperado.
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| |||
Respuesta: Juego: "¿Dónde está el error?" En efecto. Y recuerden también que pasa lo mismo con las variables estáticas (declaradas con static) dentro de una función. Al usar unset() en ellas, se borra la referencia, mas la variable sigue conservando su valor en las siguientes llamadas a la función. |
| ||||
Respuesta: Juego: "¿Dónde está el error?"
Código PHP:
¿Cuál es el resultado y por qué? Ver original
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Bueno lo primero que true es una palabra reservada y no se puede usar, originalmente si se quita el simbolo de @ antes de define, debe dar una notificación, y $foo siempre va a dar false porque no estás haciendo una comparación como tal.
__________________ 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?" ¿A qué te refieres con que "no estás haciendo una comparación como tal"?
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Bueno, sinceramente no sé si hacer esto
Código PHP:
es hacer una comparación, porque siempre va a dar false. En ello le estás diciendo que tome el primer valor. 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?" Vale, pero eso aún no contesta la pregunta. ¿Por qué ocurre así?
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Imprimiria "verdadero"... porque el define daria error y no se cambiaria el valor de true. Y $foo no es una comparacion, es como hacer "if(false or true)" y daria true. Creo no estoy seguro y no tengo como probar el codigo :P
__________________ Half Music - www.halfmusic.com |
| ||||
Respuesta: Juego: "¿Dónde está el error?" No, no es ese el resultado que produce.
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Respuesta: Juego: "¿Dónde está el error?" uh.. bueno ahora me quedo la duda que sucede con "define('true', false);" :P
__________________ Half Music - www.halfmusic.com |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Lo que yo entiendo que ocurre es que se declara siempre false porque no ha ocurrido algún error y PHP asigna el valor que se menciona primero en $foo. Por eso el resultado que produce echo es falso en vez de imprimir verdadero porque le estás indicado que el valor booleano es false y el ternario ejecuta la segunda parte que es cuando no es cierta la condición.
__________________ 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?" Vaya, que me llamo la atención esto de ver los pedacitos de código, (salvo la vecina de Abimael, me asustas.. con esa gente convives? XD) En fin, el último código produce falso, según yo y mis análisis, porque se define a $foo como falso.. |
| ||||
Respuesta: Juego: "¿Dónde está el error?" En el caso de que allí esté el problema, ¿por qué $foo se define como falso si se espera que sea verdadero?
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Respuesta: Juego: "¿Dónde está el error?" <saludos> Pues en primera, si se copia el código y se pega para probar en un editor, la función iif da error unexpected T_STRING Sin embargo, si se hace a mano el código funciona bien Ahora, cambiando esto nos retorna falso porque la variable $foo se asigna como tal, por más que se use el OR (si pusieramos true OR $true devolvería verdadero) como ya anteriormente mencionó abimaelrc Además, se esta definiendo una variable con una palabra reservada, y por esto mismo se asignara el valor de la variable reservada, si quisieramos hacer uso de la variable que esta en define, podriamos llamarla "truetrue", para que sea distinta a la palabra reservada </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?" La clave está en la línea que citó abimaelrc. Código PHP: Esto se ve más claro en el siguiente ejemplo: Uso del operador || Código PHP: Uso del operador OR Código PHP: Código PHP: |
| ||||
Respuesta: Juego: "¿Dónde está el error?" Correcto. Tu turno okram; ya que los demás aunque indicaron el problema, no respondieron a la pregunta principal que era el por qué de ese comportamiento. De todo esto, la lección es que AND y &&; OR y || no se comportan exactamente de la misma manera. De hecho AND y OR son de los pocos operadores que tienen menor precedencia que el operador de asignación.
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
Etiquetas: |