2016-04-29 9 views
5

Ich verwende einige Premium-Plugins und deren Code zu analysieren Ich fand, dass sie in einigen Funktionen verwenden, um Code wie:Wie sicher ist das. = Operator auf einer nicht initialisierten Variablen?

$output .= $some_str;

wenn das $ ausgegeben wurde nirgendwo zuvor erwähnt.

Wie sicher ist dieser Code? Ich habe versucht, irgendeine Anleitung im PHP Manual dafür zu finden, aber für das, was ich sehe, definieren sie es nur für $ output und $ some_str, die vorher gesetzt wurden.

Später wird diese $ output-Variable verwendet, um HTML-Code zu echo.

Haben Sie irgendwelche Angaben dazu gesehen? Vielleicht kann ich etwas außerhalb dieser Plugins tun, um diesen Code sicherer zu machen? Ein Standardwert für alle nicht initialisierten Variablen?

Vielen Dank!

+1

Was ist Ihre Definition von "sicher"? Abgesehen von dem implizierten NULL-Wert und dem Hinweis/der Warnung (oder dem Protokolleintrag davon) sind Skriptsprachen nicht anfällig für z.B. Nullzeigerfehler. Es ist in http://php.net/manual/en/language.variables.basics.php#example-112 btw abgedeckt. – mario

+0

@mario, ich meinte zum Beispiel, würde dieser HTML-Code diese Variable später erzeugen, alles enthalten, was nicht absichtlich dort abgelegt wurde. –

+1

Die Fälle, die Sie nicht beachten sollten, sind nicht solche mit * nicht initialisierten * Variablen. Das wird nicht schaden. Bei Plugins oder Themes ist es möglich, * vererbte * Variablen, z. aus einem gemeinsamen (globalen) Variablenbereich. Das könnte zu ungewollten Ausgaben etc. führen. – mario

Antwort

7

Es ist eine schlechte Übung, weshalb PHP ein E_NOTICE ausgibt (wenn Sie Fehlerberichte aktivieren).

Das heißt, PHP-Variablen werden immer automatisch initialisiert, so dass es keine negativen Auswirkungen hat.

Verwandte Themen