2010-01-22 8 views
6

Sto cercando di scrivere il mio codice come manutenibile e facile da capire il più possibile, e ho pensato di includere il tipo di dati che una variabile contiene nel suo nome.PHP - Vale la pena includere il tipo di dati nel nome della variabile?

es:

$intCurrentLine = 1; instead of $currentLine = 1; 
$strUser = 'blah'; instead of $user = 'blah'; 

Io non credo che sia veramente necessario nell'esempio di cui sopra, ma può essere utile in alcuni casi?

  • Ciò potrebbe rendere più comprensibile il mio codice?
  • Dovrei effettivamente usare questo o restare con nomi di variabili "normali"?
  • Conosci gli script in cui viene utilizzato?

migliori saluti, lama

risposta

8

L'aggiunta del tipo al nome della variabile è denominata Hungarian Notation.

È una questione di stile in linguaggi senza tipo come PHP e VB. Preferisco non usarlo perché non c'è un bisogno reale.

Questo è un buon articolo sull'argomento. http://www.joelonsoftware.com/articles/Wrong.html

+0

VB (sia classico che .NET) ha tipi, è solo che il tipo predefinito è il tipo Variant generico. – Powerlord

+0

Tuttavia la notazione è venuta dal mondo VB .net a causa del tipo di variante. – Yada

1

sono stato insegnato che nelle classi di programmazione del college, ma nel mondo reale trovato inutile. Cerco solo di rendere descrittivo il nome della variabile e di solito trasmette di che tipo si tratta. Ad esempio firstName significa stringa per me o nel tuo caso currentLine significa int.

Penso che finché sei descrittivo e preciso nella tua denominazione è sufficiente.

1

Ti aiuta sicuramente a sapere quale tipo di dati sono le tue variabili senza dover utilizzare ctype o simili.

Se si tenta di fornire i nomi delle variabili che definiscono implicitamente il proprio tipo, ad esempio $userName, non si dovrebbero avere troppi problemi.

+0

Cose come $ username sarebbero le cose che fanno meno problemi .. Pensate di roba come $ usersCurrent - potrebbe essere un array, un intero o solo una stringa contenente un elenco separato di utenti: O – lamas

+3

@lamas, era più o meno il suo punto. $ usersCurrent è un esempio di variabile con un nome errato. $ currentUserCount o $ currentUsers sarebbero più indicativi dei dati. – Langdon

1

La mia regola generale è che fino a quando la variabile ha un nome univoco non è necessario annotare anche il tipo.

1

Questo è chiamato hungarian notation e considerato una cattiva pratica.

Secondo Robert C. Martin, autore di "Codice pulito", digitare codifiche "rendere più difficile modificare il nome o il tipo di una variabile, funzione o classe. Rendono più difficile leggere il codice. creare la possibilità che il sistema di codifica possa fuorviare il lettore. "

Non usarli. Scegli saggiamente i nomi delle tue variabili.

0

Non penso che il tipo di una variabile aumenti di molto la comprensione. Suggerisco si dovrebbe usare significativi nomi come

$currentLineNumber = 1; instead of $currentLine = 1; 
$userName = 'blah'; instead of $user = 'blah'; 

Anche se in questo caso $currentLine rende abbastanza chiaro che cosa significa.

Al contrario, anche se aggiungo il tipo, non è necessariamente più facile capire cosa effettivamente fa la variabile, ad es. $floatNumber vs. $numberOfStores.

1

Non sono un fan della notazione ungherese. Questa è la mia opinione personale e sono volutamente soggettivo in questa materia.

Strip out hungarian notation from a PHP file

  1. Questo potrebbe rendere il mio codice più comprensibile?
    • No, è inutile
  2. Devo effettivamente utilizzare questo o bastone con nomi di variabili "normali"?
    • bastone con i nomi normali
  3. Sai script in cui questo viene utilizzato?
    • Sì, ma non importa
0

solito, sto usando $ sVar per archi, $ iVar per gli interi, $ Avar per gli array, ecc (dove Var è sostituito OFC con il nome delle variabili). È una piccola aggiunta e un po 'più chiara per me.

0

È possibile specificarlo nei commenti.

Qualcosa di simile

/* 
* 
* @var string 
*/ 

$your_var = ''; 

Se si dispone di una buona ide si salire su queste cose :)