2010-02-23 11 views
5

Ho appena iniziato a utilizzare array PHP (e php in generale)Devo usare Hypens, Underscore o camelCase negli array php?

Ho un codice simile al seguente:

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> 

Sto usando hypens (about-h2) ma non sono sicuro che ciò mi causerà problemi in futuro. Eventuali suggerimenti?

risposta

17

Tra il caso di cammello e sottolinea che è gusto personale. mi consiglia di utilizzare qualunque convenzione usi per nomi di variabili regolari, quindi tu E non ha lasciato il pensiero "era questo un segno di sottolineatura o un caso di cammello ...?" e al tuo successore non viene lasciato pensare a tutti i modi in cui potrebbe torturarti per aver mescolato gli stili. Scegline uno e seguilo su tutta la linea.

Ecco perché i trattini è una pessima idea - anche, raramente, ti consigliamo di usare qualcosa come extract che prende un array e converte i suoi membri in variabili regolari:

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

Personalmente, preferisco cammello caso, perché ci sono meno caratteri.

1

È possibile utilizzare ciò che sembra più comodo, tuttavia, non consiglierei l'uso di hypehens.

L'approccio comune è utilizzare CamelCase e questo è quello che molti standard richiedono.

Si consiglia di utilizzare questo.

$thisIsMyVariable 

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

Inoltre, è possibile notare che l'uso di trattini potrebbe far apparire le variabili come sottratte. Quindi devi usare

$object->{”Property-Here”} 

Non è proprio bello. :(

Edit, scusate ho appena visto che lei ha chiesto sulla questione in Array, non variabili. In entrambi i casi, la mia risposta si applica ancora.

1

vorrei aggiungere tutto in una sola parola. In caso contrario aggiungendo tutto insieme , vorrei abbreviare o utilizzare _.

Nel lungo periodo, tutto ciò che si decide di scegliere solo essere coerente.

0

Il first result in Google per "standard di codice PHP" dice:

  • uso '_' come separatore di parola.
  • non usare '-' come la parola di separazione

Ma, si può tranquillamente fare quello che vuoi, se non si dispone già di norme da seguire. Sii coerente in ciò che fai.

3

Sono davvero sorpreso che nessuno abbia ancora detto questo. Trovo davvero piuttosto brutto che tutti richiamino standard di denominazione variabili quando parliamo di chiavi di array, non di variabili.

Dal punto di vista funzionale, non si avranno problemi nell'usare trattini, caratteri di sottolineatura, camelCase nelle chiavi dell'array. Puoi anche usare spazi, nuove linee o null byte se vuoi! Non avrà alcun impatto sulla funzionalità del tuo codice ^.

Le chiavi di array sono int o string. Quando si utilizza uno string come chiave, viene considerato come qualsiasi altro string nel codice.

Detto questo, se si sta costruendo una struttura di dati standardizzata, è meglio usare lo stesso standard che si sta utilizzando per i nomi delle variabili.


^A meno che non si sta progettando di typecast a un (stdClass) o utilizzare extract(), nel qual caso si dovrebbe usare i tasti che convertono ai nomi di variabili validi al fine di evitare l'uso di ->{"My Key Is"} invece di ->myKeyIs. In tal caso, assicurarsi che le chiavi siano conformi a [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.

0

Quando si guarda il codice: Forse si può anche evitare di lavorare con array e chiavi se si utilizza qualcosa come gettexthttp://de2.php.net/manual/en/intro.gettext.php per i vostri sforzi di internazionalizzazione fin dall'inizio.

Questa sarà finalmente tradurrà in

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

o

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

Vorrei utilizzare gettext. Ma non funziona nell'host condiviso condiviso che sto usando: http://www.zymic.com/. – alexchenco

0

Molte persone, tra cui Zend, dire ai programmatori di utilizzare caso di cammello, ma personalmente ho utilizzato sottolineature come separatori di parola per i nomi delle variabili, matrice chiavi, nomi di classi e nomi di funzioni. Inoltre, tutto in lettere minuscole, ad eccezione dei nomi delle classi, in cui I utilizza le maiuscole.

Ad esempio:

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

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