Tipps

Um zukunftssicheren Code zu schreiben, wird empfohlen möglichst wenig Variablen, Funktionen oder Klassen im globalen Namensraum zu platzieren. Das wird Namenskonflikte mit Code von Drittanbietern sowie auch möglichen zukünftigen Erweiterung der Sprache verhindern.

Eine übliche Maßnahme, um Namenskonflikte von Funktionen und Klassen zu vermeiden, ist diese zu ihrem eigenen Namensraum hinzuzufügen.

<?php

namespace MyProject;

function
my_function() {
return
true;
}

\MyProject\my_function();

Das erfordert noch immer den Überblick über bereits verwendete Namesräume zu behalten, aber sobald entschieden wurde, welcher Namensraum verwendet werden soll, können diesem alle Funktionen und Klassen hinzugefügt werden, ohne weitere Gedanken an Konflikte verschwenden zu müssen.

Es wird als beste Praxis angesehen, die Zahl von Variablen, die zum globalen Geltungsbereich hinzugefügt werden, zu beschränken, um Namenskonflikte mit Code von Drittanbietern zu vermeiden.

Hinweis: Geltungsbereich von Variablen

Aufgrund der Geltungsbereichsregeln von PHP befinden sich Variablen, die in Funktionen oder Methoden definiert sind, nicht im globalen Geltungsbereich, und können daher nicht mit anderen Variablen, die im globalen Geltungsbereich definiert sind, kollidieren.

add a note add a note

User Contributed Notes 4 notes

up
27
willian at gt44 dot com
11 years ago
I don't think it makes sense nowadays. We have namespaces now!
up
1
kanone at rogers dot com
10 years ago
The javascript community has developed a strong cultural bias against adding anything to the global namespace.  (See e.g. Addy Osmani's article on Essential JavaScript Namespacing Patterns .)  Namespaces have been available in JS for many years and are ubiquitous.  There is also a great deal of freely available tutorial material for the interested reader.
up
1
mestresan AT gmail DOT com
10 years ago
Even though nowadays we do have namespaces, for the cases in which the user chooses to not use namespaces theses tips should be followed.
up
1
earnie at users dot sourceforge dot net
10 years ago
@willian at gt44 dot com: What about clashes of the namespace?  It is still good advice to check for previously used names before assigning anything to the global namespace.
To Top