Foros del Web » Programando para Internet » PHP »

Juego: "¿Dónde está el error?"

Estas en el tema de Juego: "¿Dónde está el error?" en el foro de PHP en Foros del Web. Ya me dirán si lo siguiente es buena o pésima idea. Se trata de colocar un pedazo de código donde exista un error intencionalmente escrito. ...

  #1 (permalink)  
Antiguo 18/12/2010, 18:49
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.025
Antigüedad: 15 años, 7 meses
Puntos: 832
Juego: "¿Dónde está el error?"

Ya me dirán si lo siguiente es buena o pésima idea. Se trata de colocar un pedazo de código donde exista un error intencionalmente escrito. Gana el primero que acierte. También puede formularse una pregunta para ser respondida (tipo trivia).

Aquí va una primera propuesta de reglas del juego para explicar mejor cómo es el asunto:

---

Reglas del juego:

1.- El tiro puede consistir en buscar un error o en una pregunta tipo trivia.

2.- Si es error: De 1 a 8 líneas de extensión.

3.- Si es error: De 1 a 3 errores.

4.- Si es trivia: Debe ser una pregunta técnica, directa y razonable (Ejemplo correcto: "¿Cuál es la profundidad máxima admitida para un array?". Ejemplo incorrecto: "¿Por qué al Papa no le gusta PHP?").

5.- Las preguntas verbales se responderán con palabras(Ejemplo incorrecto: "¿Cuál es la expresión regular para capturar 'Q' y 'o' en 'Queso'? Esto obliga a responder una pregunta verbal con código). Las preguntas tipo error se responderán indicando los errores (Ejemplo: "La variable $fulano es incorrecta porque $zutano no está seteado). Se permite responder con el código arreglado, siempre y cuando vaya acompañado de la explicación.

6.- Quien acierte debe tener en cuenta que le tocará postear el siguiente tiro dentro de un lapso aproximado a 48 horas. Caso contrario cualquier participante podrá continuar el juego.

7.- El autor del tiro debe validar la respuesta de quien acierte.

8.- Si el autor comete un error imprevisto (es decir, que no haya sido intencional sino que falló por bobo) lo enviaremos a pasar un fin de semana romántico con la vecina de abimaelrc.

9.- (Esta regla parece innecesaria pero sospecho que es útil) sólo PHP.

10.- Es preciso formatear el código utilizando las etiquetas [highlight="php"] o [php] e indentarlo correctamente. Favor otorgar especial atención a esto.

---

Espero les guste la propuesta (por supuesto abierta a sugerencias, cambios, machaques y explosiones). Personalmente creo que será una buena dinámica para divertirnos un poco, aprender y matar el tiempo ocasionalmente.

Si les parece bien aquí va el primer código, el cual tiene 2 errores:

Código PHP:
Ver original
  1. <?php
  2. $variable = 8;
  3. function codigo($foo = null) {
  4.     if (isset($variable))
  5.         echo '';
  6.     else
  7.         echo 'hola';
  8. }
  9. ?>
Recuerden que quien responda debe lanzar el próximo tiro.
  #2 (permalink)  
Antiguo 18/12/2010, 23:18
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 14 años, 8 meses
Puntos: 45
Respuesta: Juego: "¿Dónde está el error?"

Pues a simple vista parece todo bien. No obstante voy a dar algunas sugerencias por si algo da en el clavo:

1) A la función si no se le llama no puede ejecutarse. Faltaría especificar: codigo() antes o después de la función. Tal como está la página está en blanco.

2) Variable podría ser parte del argumento de la función, quizás sería más correcto hacer:
Código PHP:
function codigo($variable ,$foo null
3) La variable $foo definida en el argumento de la función no tiene ninguna utilidad por lo que podría ser eliminada.

4) Los corchetes no son necesarios pero recomendables.

5) Es recomendable utilizar comillas dobles en lugar de comilla simple.

6) Es tontería hacer un isset a una variable que tiene valor definido.
  #3 (permalink)  
Antiguo 19/12/2010, 13:27
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.025
Antigüedad: 15 años, 7 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Jeje, buen intento. De todo lo que dijiste has descubierto 1 error y el otro lo trataste a medias. Ambos están a plena vista así que no hay excusa para fallar
  #4 (permalink)  
Antiguo 19/12/2010, 13:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Juego: "¿Dónde está el error?"

Yo no le llamaría error, sino descuido...

- isset() esta bien planteada, no es tontería, ¿donde se define si esta fuera de contexto?
- lo de las comillas también es una burrada, a menos que se quieran emplear secuencias especiales dentro las comillas, ¿que sería una secuencia, y como se escribe un espacio en blanco sin dejar un espacio en blanco?
- ¿corchetes? ¿porque? ¿donde?

PDTA: ¿mi participación es válida metacortex?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/12/2010, 13:47
 
Fecha de Ingreso: octubre-2010
Mensajes: 77
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Juego: "¿Dónde está el error?"

Este es el correcto:
Código PHP:
<?php
$variable 
8;
function 
codigo($foo null) {
    if (isset(
$variable)) 
        echo 
'';
    else 
        echo 
'hola';
}
?>
Y este el que está bien:
Código PHP:
<?php
$variable 
8;
function 
codigo($foo null) {
    if (isset(
$variable)) {
        echo 
'';
    else {
        echo 
'hola';
}
?>

En realidad creo que está mal, pero bueno...
  #6 (permalink)  
Antiguo 19/12/2010, 13:57
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.025
Antigüedad: 15 años, 7 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

sergicion, desafortunadamente no acertaste. (Recuerda que el código arreglado es un elemento complementario. Lo que vale es la respuesta verbal).

Cita:
Iniciado por pateketrueke Ver Mensaje
PDTA: ¿mi participación es válida metacortex?
Claro hermano.
  #7 (permalink)  
Antiguo 19/12/2010, 14:39
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 10 años, 6 meses
Puntos: 22
Respuesta: Juego: "¿Dónde está el error?"

El código se ejecuta, con lo que no hay ningún error

Para calificar como erróneo a un código que no tiene fallos de sintaxis, hay que saber primero que es lo que busca hacer dicho código.

Suponiendo que la función lo que busca es comprobar si $variable está definida, faltaría añadir un global $variable y hacer la llamada. El $foo se puede quitar igualmente

Es decir
Código PHP:
Ver original
  1. $variable = 8;
  2. function codigo() {
  3.     global $variable;
  4.     if (isset($variable))
  5.         echo '';
  6.     else
  7.         echo 'hola';
  8. }
  9. codigo();
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #8 (permalink)  
Antiguo 19/12/2010, 14:47
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.025
Antigüedad: 15 años, 7 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Excelente angelAparicio, muy bien. Te toca hacer el próximo tiro .

PD: Respecto al error (o descuido) en ese código: ciertamente es un error no invocar la variable externa desde la función. Es verdad, no hay avisos de error de sintaxis, pero aún así el código no se ejecuta correctamente (de hecho en el ejemplo se devuelve el resultado contrario).

PD2: Recuerden que además de código también se permite hacer preguntas tipo trivia (ver reglas arriba).
  #9 (permalink)  
Antiguo 20/12/2010, 00:10
 
Fecha de Ingreso: diciembre-2010
Mensajes: 29
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por metacortex Ver Mensaje
Excelente angelAparicio, muy bien. Te toca hacer el próximo tiro .

PD: Respecto al error (o descuido) en ese código: ciertamente es un error no invocar la variable externa desde la función. Es verdad, no hay avisos de error de sintaxis, pero aún así el código no se ejecuta correctamente (de hecho en el ejemplo se devuelve el resultado contrario).

PD2: Recuerden que además de código también se permite hacer preguntas tipo trivia (ver reglas arriba).
Estaría bueno que hagas una tabla de puntuación en el primer post, es decir que pongas:

1 punto - angelAparicio

Y así sumándole a todos los que ganen.
  #10 (permalink)  
Antiguo 20/12/2010, 04:29
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 10 años, 6 meses
Puntos: 22
Respuesta: Juego: "¿Dónde está el error?"

Venga, ahí va:

Código PHP:
Ver original
  1. function imprimirAlfabeto() {
  2.     for ($i = 'a'; $i <= 'z'; $i++){
  3.         echo "$i ";
  4.     }
  5. }
  6. imprimirAlfabeto();

Debería mostrarse por pantalla el alfabeto, desde la A hasta la Z. Pero no lo hace, ¿por qué?
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #11 (permalink)  
Antiguo 20/12/2010, 07:05
 
Fecha de Ingreso: septiembre-2007
Mensajes: 59
Antigüedad: 12 años, 4 meses
Puntos: 3
Respuesta: Juego: "¿Dónde está el error?"

<?
function imprimirAlfabeto() {
for ($i = 'a'; $i != 'aa'; $i++){
echo $i;
}
}
imprimirAlfabeto();
__________________
Clasificados gratis
  #12 (permalink)  
Antiguo 20/12/2010, 07:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por angelAparicio Ver Mensaje
Debería mostrarse por pantalla el alfabeto, desde la A hasta la Z. Pero no lo hace, ¿por qué?
http://php.net/manual/en/language.op....increment.php


Cita:
Iniciado por poos Ver Mensaje
<?
function imprimirAlfabeto() {
for ($i = 'a'; $i != 'aa'; $i++){
echo $i;
}
}
imprimirAlfabeto();
Con eso no logras nada.

Cedo el juego a otra persona, pero me gusto esto, da mucho para aprender.

Edito: Hay muchas formas de lograrlo, entre una de ellas
Código PHP:
Ver original
  1. <?php
  2. //La que se me ocurre
  3. function imprimirAlfabeto() {
  4.     for ($i = ord('a'); $i <= ord('z'); $i++){
  5.         echo chr($i). ' ';
  6.     }
  7. }
  8. imprimirAlfabeto();
  9.  
  10. //Esta la vi por internet
  11. function imprimirAlfabeto2() {
  12.     foreach(range('a','z') as $a_z){
  13.         echo $a_z . ' ';
  14.     }
  15. }
  16. imprimirAlfabeto2();
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 22/12/2010 a las 09:12 Razón: usar el strike porque sí funciona el código...
  #13 (permalink)  
Antiguo 20/12/2010, 07:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por metacortex Ver Mensaje
8.- Si el autor comete un error imprevisto (es decir, que no haya sido intencional sino que falló por bobo) lo enviaremos a pasar un fin de semana romántico con la vecina de abimaelrc.
Se te olvidaba indicar que es con la que tú sales todos los días.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #14 (permalink)  
Antiguo 20/12/2010, 09:40
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.025
Antigüedad: 15 años, 7 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por abimaelrc Ver Mensaje
http://php.net/manual/en/language.op....increment.php



Con eso no logras nada.

Cedo el juego a otra persona, pero me gusto esto, da mucho para aprender.

Edito: Hay muchas formas de lograrlo, entre una de ellas
Código PHP:
Ver original
  1. <?php
  2. //La que se me ocurre
  3. function imprimirAlfabeto() {
  4.     for ($i = ord('a'); $i <= ord('z'); $i++){
  5.         echo chr($i). ' ';
  6.     }
  7. }
  8. imprimirAlfabeto();
  9.  
  10. //Esta la vi por internet
  11. function imprimirAlfabeto2() {
  12.     foreach(range('a','z') as $a_z){
  13.         echo $a_z . ' ';
  14.     }
  15. }
  16. imprimirAlfabeto2();
Sería bueno que quienes respondan lo hagan de forma completa y sabiendo que debe propinar el siguiente tiro. De lo contrario sólo veríamos una respuesta de sólo código, sin explicación y además sin garantía de continuidad.

Cita:
Iniciado por abimaelrc Ver Mensaje
Se te olvidaba indicar que es con la que tú sales todos los días.
Sólo dije que era tu vecina . Si te enojas te pondrás en evidencia.
  #15 (permalink)  
Antiguo 20/12/2010, 10:04
 
Fecha de Ingreso: diciembre-2010
Mensajes: 29
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Juego: "¿Dónde está el error?"

Posteen cosas simples también, para los menos avanzados
  #16 (permalink)  
Antiguo 20/12/2010, 10:32
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.025
Antigüedad: 15 años, 7 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por julian_aguero Ver Mensaje
Posteen cosas simples también, para los menos avanzados
Jejeje ahí es donde muchos vamos a "parir" con la respuesta. La complejidad de los tiros es elección de quien los lanza. Además ¿cuál es el miedo a los tiros difíciles?. Mientras estén bien planteados no hay problema.

El tiro de angelAparicio necesita ser repondido.
  #17 (permalink)  
Antiguo 20/12/2010, 11:41
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Ok, ok...
Según PHP
Cita:
PHP follows Perl's convention when dealing with arithmetic operations on character variables and not C's. For example, in Perl 'Z'+1 turns into 'AA', while in C 'Z'+1 turns into '[' ( ord('Z') == 90, ord('[') == 91 ).
Teniendo como base lo que se menciona anteriormente, el problema es que cuando PHP llega a z sigue porque la siguiente conversión que es aa php lo interpreta como 93 que es representación de a y está por debajo de la z, hasta que llega a za que ahí es cuando se convierte en falsa en el bucle.

Al momento no me acuerdo de algún error, pero cuando lo vea lo dejo saber, claro está si es que contesté la pregunta

Edito: Si alguién sabe de algún error en lo que verifico alguno, puede adelantarse, así no se detiene el juego en lo que consigo uno.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #18 (permalink)  
Antiguo 21/12/2010, 04:17
Avatar de angelAparicio  
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 307
Antigüedad: 10 años, 6 meses
Puntos: 22
Respuesta: Juego: "¿Dónde está el error?"

La respuesta de poos funciona, aunque lo hace un poco "por fuerza bruta"
Código PHP:
Ver original
  1. <?
  2. function imprimirAlfabeto() {
  3.     for ($i = 'a'; $i != 'aa'; $i++){
  4.         echo $i;
  5.     }
  6. }
  7. imprimirAlfabeto();

La respuesta de abimaelrc es más intuitiva, me gusta más:
Código PHP:
Ver original
  1. for ($i = ord('a'); $i <= ord('z'); $i++)

Supongo que ahora le toca tirar a poos :D
__________________
Mis webs:
- Programador Web Autónomo
- Conciertos en Sevilla
  #19 (permalink)  
Antiguo 21/12/2010, 05:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por angelAparicio Ver Mensaje
La respuesta de poos funciona, aunque lo hace un poco "por fuerza bruta"
Es verdad, es que lo había probado con las etiquetas cortas y lo tengo deshabilitado,
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #20 (permalink)  
Antiguo 22/12/2010, 09:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Código PHP:
Ver original
  1. <?php
  2. function num($num){
  3.     if($num == 10){ return; }
  4.     num($num++);
  5.     echo $num;
  6. }
  7. echo num(0);
Ese código publica un error algo así
Cita:
Fatal error: Allowed memory size of ....... bytes exhausted (tried to allocate ....... bytes) in ....... on line 4
Debería publicar como resultado: 10987654321. ¿Cuál es el problema y cómo resolverlo?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #21 (permalink)  
Antiguo 22/12/2010, 09:32
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 11 años, 5 meses
Puntos: 87
Respuesta: Juego: "¿Dónde está el error?"

interesante, bueno el problema, no estoy muy seguro, pero creo que cuando pones num($num++), 1ro realiza la función antes de incrementar la variable, osea que se entraría en un bucle infinito.

Y la solución seria modificar el código a:

Código PHP:
Ver original
  1. <?php
  2. function num($num){
  3.     if($num == 10){ return; }
  4.     num(++$num);
  5.     echo $num;
  6. }
  7. echo num(0);
  #22 (permalink)  
Antiguo 22/12/2010, 09:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 8 meses
Puntos: 2135
Respuesta: Juego: "¿Dónde está el error?"

El problema esta en $num++, ya que eso incrementa después de enviar la variable, necesitas moverlo a ++$num para pre-incrementar.

Código PHP:
Ver original
  1. function num($num) {
  2.     if ($num == 10) { return; }
  3.     num(++$num);
  4.     echo $num;
  5. }
  6. echo num(0);

Saludos.

EDIT: Me gano Quicke88
  #23 (permalink)  
Antiguo 22/12/2010, 09:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Qué rápido contestaron , bueno quike te toca...

PD: Sinquerermente añadí un echo demás en el código pero bueno funciona como quiera
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #24 (permalink)  
Antiguo 22/12/2010, 09:47
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.025
Antigüedad: 15 años, 7 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por abimaelrc Ver Mensaje
PD: Sinquerermente añadí un echo demás en el código pero bueno funciona como quiera
Cuidado con esas cosas porque
Cita:
8.- Si el autor comete un error imprevisto (es decir, que no haya sido intencional sino que falló por bobo) lo enviaremos a pasar un fin de semana romántico con la vecina de abimaelrc.
  #25 (permalink)  
Antiguo 22/12/2010, 09:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Funcionó como quiera
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #26 (permalink)  
Antiguo 22/12/2010, 16:45
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.025
Antigüedad: 15 años, 7 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Por cierto, excelente tiro. Muy bien construido. Esperemos a ver qué nos trae quike88.
  #27 (permalink)  
Antiguo 23/12/2010, 01:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Si me permiten, publico otro...
Código PHP:
Ver original
  1. <?php
  2. $str = 'foo bar baz';
  3. echo preg_replace('/^(\w+)/', strtoupper('$1'), $str);
Se supone que strtoupper convierta en mayúscula foo, pero lo deja en minúscula, ¿por qué?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #28 (permalink)  
Antiguo 23/12/2010, 01:18
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 14 años, 8 meses
Puntos: 45
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por abimaelrc Ver Mensaje
Si me permiten, publico otro...
Código PHP:
Ver original
  1. <?php
  2. $str = 'foo bar baz';
  3. echo preg_replace('/^(\w+)/', strtoupper('$1'), $str);
Se supone que strtoupper convierta en mayúscula foo, pero lo deja en minúscula, ¿por qué?
La variable $1 además de no estar declarada, está entre comillas.
  #29 (permalink)  
Antiguo 23/12/2010, 01:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 8 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por Rolldi Ver Mensaje
La variable $1 además de no estar declarada, está entre comillas.
En realidad la variable $1 lo que hace referencia es al valor en el paréntesis declarado en la expresión. Si fuera una variable común no cumple con los requisitos del nombre y te traería otro error. En este caso no trae error alguno, sino que no hace lo que le estoy pidiendo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #30 (permalink)  
Antiguo 23/12/2010, 01:30
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 14 años, 8 meses
Puntos: 45
Respuesta: Juego: "¿Dónde está el error?"

Ahora si tiene lógica: Le falta la funcionalidad /e y además, que strtoupper esté entre comillas:

Código PHP:
Ver original
  1. $str = 'foo bar baz';
  2. echo preg_replace('/^(\w+)/e', "strtoupper('$1')", $str);

Mira que eres rebuscado, abimaelrc.

Última edición por Rolldi; 23/12/2010 a las 04:31

Etiquetas: a-por-la-vecina-de-meta, juegos
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 40 personas




La zona horaria es GMT -6. Ahora son las 11:03.