2010-02-15 14 views
7

yo estaba pasando por algunos de los códigos para Dolphin CMS recientemente (un ejemplo craptastic para los enemigos PHP) cuando me encontré con esta pequeña joya en /grp.php:¿Qué hace envolviendo un bloque de procedimiento en llaves en php?

{ 
    switch ($_REQUEST['action']) { 
     //a crapton of switch statements 
    } 
} 

estoy curioso lo que el rizado envoltura llaves, "{}" sin palabras clave, se trata. Hago el desarrollo de PHP principalmente así que tal vez (con suerte ?? !!?) Esto es algo que simplemente no sé pero he intentado eliminar las llaves y el código se ejecuta como de costumbre.

Estoy teniendo dificultades para entender cuál sería el propósito de esto.

¿Alguna idea?

(NOTA: Esto es realmente sólo para mi propia edificación ya casi tiene problemas para dormir, porque esto no está haciendo ningún sentido para mí ....)

+1

Algunos editores permiten doblar/contraer el código, así que, imagino que un desarrollador podría poner un trozo de código dentro de un bloque y luego colapsar el bloque para que sea más fácil navegar un archivo de código grande. – leepowers

Respuesta

11

que he visto esto en grandes bloques de código de procedimiento. Parece ayudar a grupo bloques lógicos juntos que normalmente se pueden abstraer a una función separada. Esto, de alguna manera, ayuda a la hora de editar y su IDE puede identificar rápidamente el bloque con las llaves.

Funcionalmente, no creo que haga nada. Visualmente, ayuda al código de grupo.

+1

Entonces, ¿el "programador" (con las citas causan ahora lo dudo) eliminó efectivamente el código para hacerlo más fácil? Una especie de práctica floja y un poco tonta si me preguntas. Aceptado :) –

+8

Solo porque este tipo de despido improvisado del trabajo de otras personas me molesta un poco: como nota de cortesía hacia otros desarrolladores, siempre asumo primero que el código WTF fue puesto allí por una buena razón. Digo esto porque sé que a veces hago cosas que a primera vista parecen algo tangenciales para resolver el problema; sin embargo, cada vez que me veo obligado a hacerlo dejo un comentario detallado explicando por qué hice lo que hice. Creo que es mejor suponer que el tipo sabía lo que estaba haciendo, a menos y hasta que reunieras buena evidencia de lo contrario. Se bueno, podría ser tu código la próxima vez. Lo siento, mi pet peeve –

+1

consigo a su hombre de punto, pero esto no fue para ser desdeñoso desdeñoso; se suponía que era simple, viejo, desdeñoso. Es una de mis cosas favoritas complicar las cosas para un IDE. Seriamente. De alguna manera me gustaría ser sarcástico pero realmente no :) Agregar un marcado especial al código para mejorar la experiencia IDE de un solo desarrollador es simplemente vago. Estoy de acuerdo en que si tienes que hacer algo tan cojo como este, simplemente haz un comentario. De hecho, la falta de un comentario me obligó a buscar la solución. –

0

Sin más contexto, es difícil de decir. Pueden estar intentando restringir el alcance de ciertas variables. No conozco específicamente las reglas de scoping de PHP, pero pueden estar tratando de asegurar que las variables modificadas dentro de esa declaración de cambio no afecten las cosas fuera del bloque. O bien, pueden estar utilizando un patrón RAII.

+0

En realidad, hace precisamente [nada] (https://gist.github.com/AD7six/11769a863f062c75ee5a) – AD7six

Cuestiones relacionadas