Ist es notwendig, Variablen in PHP zu initialisieren / zu deklarieren?

Lesezeit: 3 Minuten

Benutzer-Avatar
Omer

Ist es notwendig, eine Variable vor einer Schleife oder einer Funktion zu initialisieren / zu deklarieren?

Unabhängig davon, ob ich die Variable vorher initialisiere / deklariere oder nicht, funktioniert mein Code immer noch.

Ich teile den Democode für das, was ich eigentlich meine:

$cars = null;

foreach ($build as $brand) {
     $cars .= $brand . ",";
}

echo $cars;

Oder

foreach ($build as $brand) {
     $cars .= $brand . ",";
}

echo $cars;

Beide Codeteile funktionieren für mich gleich, ist es also notwendig, am Anfang eine Variable zu initialisieren / zu deklarieren?

Benutzer-Avatar
Alexander

PHP erfordert es nicht, aber es ist eine gute Praxis, Ihre Variablen immer zu initialisieren.

Wenn Sie Ihre Variablen nicht mit einem Standardwert initialisieren, führt die PHP-Engine eine Typumwandlung durch, je nachdem, wie Sie die Variable verwenden. Dies führt manchmal zu unerwartetem Verhalten.

Kurz gesagt, setzen Sie meiner Meinung nach immer einen Standardwert für Ihre Variablen.

PS In Ihrem Fall sollte der Wert auf “” (leere Zeichenfolge) anstelle von null gesetzt werden, da Sie damit andere Zeichenfolgen verketten.

Bearbeiten

Wie andere (@n-dru) angemerkt haben, wird eine Benachrichtigung generiert, wenn Sie keinen Standardwert festlegen.

  • Null und leeres “”… sind sie nicht gleich?

    – Omer

    20. Juni 2015 um 15:31 Uhr

  • Nein, sie sind nicht gleich. Einer ist vom Typ String, der andere ist null. Sie können den Unterschied sehen, wenn Sie mit der Funktion is_null herumspielen. is_null($null) // Returns true and generates a notice empty("") // Returns true

    – Alexander

    20. Juni 2015 um 15:35 Uhr


  • Sie meinen also NULL = Nicht zugewiesen und “” = ein leerer STRING?

    – Omer

    20. Juni 2015 um 15:45 Uhr

  • Ich glaube nicht, dass es in PHP so etwas wie nicht zugewiesene Variablen gibt. Variablen werden erstellt, wenn Sie sie zum ersten Mal verwenden. Wenn Sie eine noch nicht erstellte Variable verwenden, hat sie standardmäßig einen Nullwert. “” ist ein leerer String, ja. Sie sollten sich bewusst sein, dass die leer Die Funktion gibt in einigen Fällen wahr zurück (leere Zeichenfolge, falsch, null, nicht vorhandene Variable).

    – Alexander

    20. Juni 2015 um 15:59 Uhr


  • Ab PHP 8 Wenn Sie keinen Standardwert setzen, wird eine “Warnung” generiert! Mehr Details: php.net/manual/en/migration80.incompatible.php

    – Mohsen Häri

    15. Juli 2021 um 19:00 Uhr

Benutzer-Avatar
n-dru

Sie sollten ihm besser einen leeren String zuweisen $cars="";andernfalls (falls Sie Fehlerberichte aktiviert haben) sollten Sie einen Hinweis sehen:

Notiz: Undefinierte Variable: Autos

PHP geht davon aus, dass es leer war und der resultierende String derselbe ist, aber Sie sollten es vorziehen, keinen zusätzlichen Overhead zu verursachen, der durch die Notwendigkeit verursacht wird, diesen Hinweis zu protokollieren. So Leistung-weise ist es besser, es zuerst leer zuzuweisen.

Außerdem möchten Sie bei Verwendung von Editoren wie Aptana usw. möglicherweise drücken F3 um zu sehen, woher die angegebene Variable stammt. Und es ist so bequem, es irgendwo initialisiert zu haben. So Debuggen-weise ist es auch besser, einen offensichtlichen Geburtsort der Variablen zu haben.

Es kommt darauf an: Wenn Sie eine Variable außerhalb einer Funktion deklarieren, hat sie einen “globalen Gültigkeitsbereich”, dh es kann nur außerhalb einer Funktion auf sie zugegriffen werden.

Wenn eine Variable innerhalb einer Funktion deklariert wird, hat sie einen “lokalen Gültigkeitsbereich” und kann nur innerhalb dieser Funktion verwendet werden. (http://www.w3schools.com/php/php_variables.asp)

Aber es scheint, dass die Variable “cars”, die Sie außerhalb der Funktion definiert haben, auch ohne das globale Schlüsselwort für Ihre Funktion funktioniert …

  • Beachten Sie zunächst, dass im geposteten Code keine Funktion deklariert ist. Es gibt also keinen Bereich des Habens global Stichwort. Sie sollten verstehen, was gefragt wird, bevor Sie eine Frage beantworten. Außerdem ist das, was Sie geschrieben haben, ziemlich irreführend. Ich bitte um Bezugnahme php.net/manual/en/language.variables.basics.php PHP-Variablen verstehen.

    – Blip

    8. Mai 2017 um 9:55 Uhr

1229460cookie-checkIst es notwendig, Variablen in PHP zu initialisieren / zu deklarieren?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy