2009-07-19 19 views
9

Al declarar una matriz asociativa, ¿cómo maneja la sangría de los elementos de la matriz? He visto varios estilos diferentes (sintaxis PHP, ya que es en lo que he estado últimamente). Esta es una cosa bastante delicada y trivial, así que sigue adelante si estás interesado en actividades más serias.Formateo de la declaración de matriz asociativa

1) elementos de sangría un nivel más:

$array = array(
    'Foo' => 'Bar', 
    'Baz' => 'Qux' 
    ); 

2) elementos de sangría dos niveles:

$array = array(
     'Foo' => 'Bar', 
     'Baz' => 'Qux' 
     ); 

3) elementos de sangría más allá del constructor de matrices, con llave de cierre alineado con el inicio de el constructor:

$array = array(
      'Foo' => 'Bar', 
      'Baz' => 'Qux' 
     ); 

4) Sangra los elementos más allá de la construcción de la matriz, con cl Osing corsé alineada con la abertura corsé:

$array = array(
      'Foo' => 'Bar', 
      'Baz' => 'Qux' 
      ); 

Personalmente, me gusta # 3 de la amplia hendidura deja claro que estamos en un punto de interrupción en el código (la construcción de la matriz), y que tiene la llave de cierre flotante un poco a la izquierda de todos los datos de la matriz deja en claro que esta declaración está hecha.

Respuesta

10

Personalmente siempre ir:

$array = array(
    '1' => '2', 
    3 => 4, 
); 

La sangría tiene un nivel de tabulación (normalmente 4 espacios, a veces 2). Detesto el espacio en blanco excesivo. Esto funciona bien con matrices anidadas.

2

En general, solo usaré un formato de varias líneas para una matriz asociativa si no es trivial en un sentido de codificación, es decir. algo que es útil para referencia mientras lee el código. De lo contrario, (si es una matriz corta), la pondré en una sola línea.

Si es largo o no, mi IDE (Eclipse en este momento, hasta que pueda establecer una alternativa adecuada) maneja la mayor parte del formato para mí. En general resulta similar a su primer ejemplo, con un nivel de sangría:

$array = array(
    'Foo' => 'Bar', 
    'Baz' => 'Qux' 
    ); 

He crecido a preferir esta manera. Un nivel de sangrado es realmente todo lo que se necesita y crea más espacio horizontal.

1

me gusta:

$array = array('Foo' => 'Bar', 
       'Baz' => 'Qux'); 
1

Además de la sangría, también las cuestiones de la alineando los valores ya que las teclas lo más probable es tener longitudes desiguales (por lo menos algunos de ellos). Así, por ejemplo, ¿cómo lidiar con algo como esto:

'KeyOne' => 'Value1', 
'KeyTwo' => 'Value2', 
'KeyTwelve' => 'Value12', 

En estos casos generalmente me pestaña cabo la flecha de grasa al menos 2 pestañas para dar algo como esto:

'KeyOne'  => 'Value1', 
'KeyTwo'  => 'Value2', 
'KeyTwelve' => 'Value12', 
6

que suelen utilizar este tipo de sangría para las declaraciones de la matriz:

function test() 
{ 
    $my_array = array(
     'a' => 1, 
     'bcdef' => 2, 
     'gh' => array(
      'glop', 
      'test' 
     ), 
     'ijk' => 20, 
    ); 
} 

Muy similar a # 1, pero con esta diferencia:

  • la final } está sin sangrar

Nunca puse muchos espacios alrededor del '=>' para alinear los valores (como ennuikiller suggested): encuentro que realmente difícil de leer, y con frecuencia tienen ojos mi salto a un valor incorrecto ^^

También tenga en cuenta que siempre pongo un ',' al final de la última declaración:

  • es perfectamente válida
  • no tiene que agregarlo cuando agrega una línea más a la matriz
  • cuando agrega una línea al final de la matriz, modifica solo una línea: la que está agregando (y definitivamente no el anterior, para agregar el ',' ya que está allí); esto ayuda con diffs y parches: menos líneas modificadas, más fácil de leer

Una cosa más: esto es lo que hago cuando trabajo en un proyecto que no especifica las reglas de formateo; otra cosa, trato de respetar los tanto como sea posible (de modo que el formateo es coherente entre los miembros del equipo del proyecto)

1

que ir con uno que es similar a # 4:

$array = array('Foo' => 'Bar', 
       'Baz' => 'Qux' 
       'Moo' => 'Cow'); 

creo que este método permite una visability más fácil de artículos en la matriz, que es especialmente útil cuando la matriz es más grande que 10 artículos.

Cuestiones relacionadas