2010-01-22 8 views
6

Ich versuche, meinen Code als wartbar und einfach zu verstehen, wie möglich, und ich dachte über die Art der Daten eine Variable enthält in seinem Namen enthält.PHP - Wert einschließlich der Datentyp im Variablennamen?

z:

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

Ich glaube nicht, dass es in dem obigen Beispiel wirklich notwendig ist, aber es kann in einigen Fällen hilfreich sein?

  • Könnte dies meinen Code verständlicher machen?
  • Soll ich das tatsächlich verwenden oder bei "normalen" Variablennamen bleiben?
  • Kennen Sie Skripte, wo dies verwendet wird?

freundlichen Grüßen Lamas

Antwort

8

Das Hinzufügen des Typs zum Namen der Variablen heißt Hungarian Notation.

Es ist eine Frage des Stils in typlosen Sprachen wie PHP und VB. Ich bevorzuge es nicht zu verwenden, weil es kein echtes Bedürfnis gibt.

Dies ist ein guter Artikel zum Thema. http://www.joelonsoftware.com/articles/Wrong.html

+0

VB (sowohl klassisch als auch .NET) hat Typen, der Standardtyp ist nur der generische Variant-Typ. – Powerlord

+0

Trotzdem kam die Notation wegen des Variantentyps von VB .net world. – Yada

1

Ich war tought, dass Klassen in College-Programmierung, aber in der realen Welt ist es nutzlos gefunden. Ich versuche nur, den Variablennamen beschreibend zu machen, und das vermittelt normalerweise, um welchen Typ es sich handelt. Zum Beispiel firstName bedeutet String für mich, oder in Ihrem Fall currentLine bedeutet Int.

Ich denke, solange Sie beschreibend und genau in Ihrer Benennung sind, ist genug.

1

Es hilft Ihnen definitiv zu wissen, welcher Datentyp Ihre Variablen sind, ohne ctype oder ähnliches zu verwenden.

Wenn Sie versuchen, Ihren Variablen Namen zu geben, die implizit ihren Typ definieren, z. B. $userName, sollten Sie nicht zu viele Probleme haben.

+0

Dinge wie $ username würden die Dinge, die die wenigsten Probleme machen .. Denken Sie an Sachen wie $ usersCurrent - es könnte ein Array, eine Ganzzahl oder nur eine Zeichenfolge sein, die eine getrennte Liste von Benutzern enthält: O – lamas

+3

@lamas, das war ziemlich sein Punkt. $ usersCurrent ist ein Beispiel für eine schlecht benannte Variable. $ currentUserCount oder $ currentUsers würden eher auf die Daten hinweisen. – Langdon

1

Meine Faustregel besagt, dass es keine Notwendigkeit gibt, die Variable mit einem eindeutigen Namen zu versehen, so lange sie auch einen eindeutigen Namen hat.

1

Dies wird hungarian notation genannt und als schlechte Praxis angesehen.

Laut Robert C. Martin, Autor von "Clean Code", geben Sie "encodings" ein, um den Namen oder Typ einer Variablen, Funktion oder Klasse zu ändern. Sie erschweren das Lesen des Codes die Möglichkeit schaffen, dass das Codierungssystem den Leser in die Irre führt. "

Verwenden Sie sie nicht. Wählen Sie Ihre Variablennamen mit Bedacht.

0

Ich glaube nicht, dass der Typ einer Variablen zum Verständnis so viel beiträgt. Ich schlage vor, Sie sinnvoll Namen wie

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

Obwohl in diesem Fall verwendet werden sollen $currentLine ziemlich klar machen, was es bedeutet.

Im Gegensatz, auch wenn ich den Typ hinzufügen, ist es nicht unbedingt einfacher zu verstehen, was die Variable tatsächlich tut, z. $floatNumber gegen $numberOfStores.

1

Ich bin kein Fan der ungarischen Notation. Das ist meine persönliche Meinung und ich bin in dieser Sache bewusst subjektiv.

Strip out hungarian notation from a PHP file

  1. Könnte dies mein Code verständlicher machen?
    • Nein, es ist nutzlos
  2. Soll ich dies tatsächlich mit „normalen“ Variablennamen oder kleben?
    • -Stick mit normalen Namen
  3. Haben Sie Skripte wissen, wo diese verwendet?
    • Ja, aber es spielt keine Rolle
0

in der Regel, ich bin Saiten für $ sVar verwenden, $ iVar für ganze Zahlen, $ aVar für Arrays usw. (wo Var ist OFC ersetzt mit dem Variablennamen). Es ist eine kleine Ergänzung und ein bisschen klarer für mich.

0

Sie können es in Ihren Kommentaren angeben.

So etwas wie

/* 
* 
* @var string 
*/ 

$your_var = ''; 

Wenn Sie eine gute ide es auf diese Dinge abholen :)

Verwandte Themen