Frage

Basicly Ich habe eine Reihe von Links auf einer Seite, und ich werde so etwas wie dieses

verwenden
<?PHP echo $SITE_PATH ?>

Viele viele Male auf der gleichen Seite, aber es wird dafür so einen Hinweis in PHP zeigen.

Ich weiß, Sie sollen zu verwenden Dinge wie isset () , aber ich würde wirklich brauchen es jedes Mal, wenn ich Anruf zu benutzen?

<?PHP echo $SITE_PATH ?>

--- EDIT:
Wenn ich mit einer definierten Variablen wechseln, dann scheinen sich die Hinweise, weg zu gehen

War es hilfreich?

Lösung

Zwei Lösungen, hier:

  • nur Variablen verwenden, die es gibt -. Das ist, was Sie sollten wahrscheinlich tun
  • oder Test, wenn sie existieren (mit isset) , bevor Sie versuchen, sie zu nutzen.

Es gibt keine magische ^^

Wenn Ihre Anwendung viele nicht-Setvariablen ist verwenden, können Sie wahrscheinlich ein Problem in Ihrem Design haben.


In einem Fall wie die, die Sie für eine Variable dargestellt, die viele Male verwendet wird, würde ich sicherstellen, dass es existiert, und wenn nicht, sie setzen ‚auf‘ zum Beispiel am Anfang mein Skript.

Das ist nicht wirklich groß zu schauen, aber es wird funktionieren -. Und, auf diese Weise, werden Sie nicht über Ihre gesamte Anwendung zu gehen, alles Patchen

(Oder ich könnte auch die E_NOTICE error_reporting Ebene deaktivieren - ich weiß nicht, wie die Idee, aber manchmal ist es wirklich der einzige Weg, mit einiger Code-Basis zu beschäftigen)

Andere Tipps

Sie können Nachrichten unterdrücken, indem Sie @:

print @$site_path;

Sie können auch eine ternäre Operation verwenden, um einen Standardwert zu erhalten:

print (isset($site_path)) ? $site_path : "default_path" ;

Am Ende sollte man aber keine Variablen verwenden, die nicht gesetzt sind. Wenn Sie sind, müssen Sie mit Ihrem Ansatz neu zu überdenken. Behandeln Sie diese Informationen up-front, so dass der Rest Ihrer Skripte ohne Probleme wie diese ausgeführt werden kann.

Sie sollten wirklich sicherstellen, dass eine Variable vor der Verwendung eingestellt ist (vor allem an der Seite Echo). Wenn die Variable von einer unsicheren Quelle kommt ($ _GET, $ _POST, Datenbank), dann sollten Sie irgendeine Art tun zum Filtern eine Sicherheitsverletzung (Cross-Site-Scripting (XSS), Cross-Site Request Forgery (CSRF), etc. zu verhindern .. .), aber wenn man alles sicher fühlen, wie und Sie wollen einfach nicht, um Fehler zu zeigen (zB in der Produktion) auf 0 gesetzt, Ihre Fehlerberichterstattung.

z. error_reporting(0);

Sie können dies auf der php.ini Ebene tun oder pro Seite (Satz error_reporting(0); am oberen Rand der Seite).

Auf einer Seite beachten, wenn in der Produktion haben Sie nicht immer Fehler angezeigt werden sollen. Melden sie stattdessen. In Entwicklung möchten Sie alle Ihre Fehler (E_STRICT) sehen.

Sie können eine Funktion erstellen, um zu überprüfen, ob die Variable gesetzt ist, und schicken Sie es:

function EchoVar() {
    global $SITE_PATH;
    return isset($SITE_PATH) ? $SITE_PATH : '';
}

// calling it
echo EchoVar();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top