Explizite Variableninitialisierung sinnvoll?

Mik3e

Erfahrenes Mitglied
Tach zusammen,

Mal eine grundlegende Frage (die meiner Meinung viel zu selten behandelt wird):
Macht eine explizite Variableninitialisierung Sinn? (abgesehen von der Übersichtlichkeit).

In PHP gibt es ja keine Variablendeklaration (Ausnahme: einige spezielle Types wie Arrays oder Sessions).

Deklaration in dieser Form existiert ja nicht:
PHP:
int $a;
string $b;
Das Type-Binding passiert ja je nach Zusammenhang während der Laufzeit (vollautomatisches Typecasting).

Nun stellt sich mir die Frage, ob eine explizite Initialisierung etwas für die Performance bringt (das z.B. schon der Speicherbereich für die Variable vorweg festgelegt wird):

Beispiel:
PHP:
$a=0; // Preprocessor setzt $a = INT oder BIGINT
$b=""; // Preprocessor setzt $a = STRING
Hat das irgendwelche Vorteile? (abgesehen von der Übersichtlichkeit)
Leider habe ich auf PHP.net nur sehr spärliche Angaben darüber gefunden.

LG
Mike
 
Nein, da hast du was falsch verstanden..
is_* ist keine Deklaration, sondern eine Abfrage die einen boolschen Wert zurückliefert...
Das hat nichts mit initialisieren oder deklarieren zu tun.

Und das in deinem zweiten beispiel ist eine Initialisierung (keine Deklaration)...
Meine Frage war, ob eine explizite Initialisierung für die Performance Sinn macht (early Binding -> Wird der Speicher schon vorweg festgelegt?).

LG
Mike
 
Das Thema ist zwar Uralt aber genau das was ich mich gerade auch gefragt habe.
Mittlerweile lässt sich ja durch die Deklaration (int) $var der Typ bestimmen.
Also mal die Frage in das Jahr 2011 geholt, kann man durch Explizite Deklaration / Initialisation auch einen Performance-Gewinn erwarten?
 
Man kann in PHP keine Variablen explizit typieren. So etwas wie

PHP:
int $i = 5; // Syntax-Fehler

(int)$j = "5"; // String bleibt String:
var_dump($j);

funktioniert nicht.

Von Performance will ich gar nicht reden. Es gab mal einen wirklich genialen Entwickler, der hat folgendes behauptet:

Versuche nicht, Code schneller zu machen, denn das funktioniert nicht. Versuche mit weniger Code das gleiche zu erreichen.

Was will ich damit sagen? Die Performance einer Applikation hängt entscheidend davon ab, wieviel eine CPU abarbeiten muss. Je weniger Instruktionen auszuführen sind, um so schneller kann die CPU das abarbeiten.
 
Zurück