2010-02-23 12 views
5

acabo de empezar la utilización de matrices de PHP (PHP y en general)¿Debo usar Hypens, Underscore o camelCase en matrices php?

Tengo un código como el siguiente:

languages.php:

<?php 
$lang = array(
    "tagline" => "I build websites...", 
    "get-in-touch" => "Get in Touch!", 
    "about-h2" => "About me" 
    "about-hp" => "Hi! My name is..." 
); 
?> 

index.php:

<div id="about"> 
    <h2><?php echo $lang['about-h2']; ?></h2> 
    <p><?php echo $lang['about-p']; ?></p> 
</div> 

Estoy usando hiperes (about-h2) pero no estoy seguro si esto me causará problemas en el futuro. ¿Alguna sugerencia?

Respuesta

17

Entre carcasa camello y subraya que es gusto personal. me gustaría recomendar el uso de cualquier convención se usa para nombres de variables regulares, por lo que eres No nos quedamos pensando "¿este fue el subrayado o el caso de los camellos ...?" y su sucesor no se queda pensando en todas las formas en que podría torturarte por mezclar estilos. Elija uno y quédese con él en todos los ámbitos.

Es por eso guiones es una muy mala idea - también, en raras ocasiones, tendrá que usar algo como extract que tiene una matriz y convierte a sus miembros en las variables regulares:

$array = array("hello" => "hi", "what-up" => "yup"); 
extract($array); 
echo $hello; // hi 
echo $what-up; // FAIL 

Personalmente, prefiero camello caso, porque hay menos personajes.

1

Puedes usar lo que te parezca más cómodo, sin embargo, no recomendaría usar hiperextensiones.

El enfoque común es utilizar camelCase y eso es lo que requieren muchos estándares en frameworks.

Recomiendo usar esto.

$thisIsMyVariable 

$this-is-not-how-i-would-do-it 

Además, puede encontrar que el uso de guiones puede hacer que sus variables parezcan restar. Entonces usted tiene que usar

$object->{”Property-Here”} 

Simplemente no es agradable. :(

Editar, lo siento acabo de ver que se le preguntó sobre la cuestión en Array, no variables. De cualquier manera, mi respuesta sigue siendo válida.

1

me habría anexar todos en una sola palabra. Si no anexar todo junto , me gustaría acortar o utilizar _.

a la larga, lo que usted decide elegir sólo ser consistente.

0

El first result en Google de "normas del código PHP" dice:

  • uso '_' como la palabra separador.
  • no utilizan '-' como la palabra separador

embargo, se puede hacer casi cualquier cosa que desee si aún no dispone de normas a seguir. Solo se constante en lo que haces.

3

Estoy realmente sorprendido de que nadie haya dicho esto todavía. En realidad, me parece bastante malo que todos mencionen los estándares de nomenclatura variable cuando hablamos de claves de matriz, no de variables.

Funcionalmente sabio, no tendrá ningún problema al utilizar guiones, guiones bajos, camelCase en las teclas de su matriz. ¡Incluso puede usar espacios, nuevas líneas o bytes nulos si lo desea! No afectará la funcionalidad de su código ^.

Las claves de matriz son int o string. Cuando utiliza un string como clave, se trata como cualquier otro string en su código.

Dicho esto, si está construyendo una estructura de datos estandarizada, es mejor que use el mismo estándar que está utilizando para sus nombres de variables.


^A menos que usted está planeando encasillado a un (stdClass) o utilizar extract(), en cuyo caso se debe utilizar las teclas que se convierten en nombres de variables válidos con el fin de evitar el uso de ->{"My Key Is"} en lugar de ->myKeyIs. En ese caso, asegúrese de que sus llaves se ajusten a [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.

0

Al mirar su código: Tal vez incluso pueda evitar trabajar con matrices y claves si utiliza algo como gettexthttp://de2.php.net/manual/en/intro.gettext.php para sus esfuerzos de internacionalización desde el principio.

Esto, finalmente, dar lugar a

<h2><?php _("About me..."); ?></h2> 

o

<?php 
$foo = _("About me..."); 
... 
?> 
+0

me gustaría usar gettext. Pero no funciona en el alojamiento compartido compartido que estoy usando: http://www.zymic.com/. – alexchenco

0

Muchas personas, incluyendo Zend, informe a los programadores utilizar el caso de camellos, pero personalmente utilizado guiones como separadores de palabras para los nombres de variables, la matriz claves, nombres de clase y nombres de funciones. Además, todas las minúsculas, a excepción de los nombres de clase, donde I serán mayúsculas de uso.

Por ejemplo:

class News 
{ 
    private $title; 
    private $summary; 
    private $content; 

    function get_title() 
    { 
     return $this->title; 
    } 
} 
$news = new News;