Das Lesen und schreiben globaler Variablen in Skripten in PHP
Macht PHP Globale Variablen, die geändert werden können, indem Sie ein Skript ausführen und Lesen von einem anderen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Macht PHP Globale Variablen, die geändert werden können, indem Sie ein Skript ausführen und Lesen von einem anderen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, durch die design-PHP ist eine "share nothing" - Architektur, die nichts bedeutet, die gemeinsame Prozesse zur gleichen Zeit ausgeführt oder zwischen den Anfragen laufen, eine nach der anderen. Es gibt Möglichkeiten, um Daten auszutauschen, aber Sie haben es explizit tun.
Wenn Sie nur wollen, zu teilen zwischen 2 Anfragen vom gleichen Benutzer, sessions oder cookies kann der Weg zu gehen.
Wenn Sie möchten, zu teilen zwischen mehreren Benutzern, möchten Sie wahrscheinlich eine Art von shared-Persistenz, entweder kurzfristig in einen cache (zB. memcached) oder robuster wie eine Datenbank.
Entweder Weg, werden die Daten tatsächlich abgerufen und rekonstruiert auf jede Anfrage. Es ist einfach alles automatisch für Sie erledigt im Falle von Sitzungen.
Können Sie $_SESSION, d.h.:
script1.php
script2.php
Können Sie tatsächlich tun dies mit shared memory, oder APC (was ist mit shared memory selbst).
Das einzige was erreicht werden konnte zwischen Skripts ist die superglobalen $_SESSION-array. Dies ist, weil, was auch immer Sie speichern in das array gesendet wird, um ein cookie, die können dann abgeholt werden von der nächsten PHP-Skript.
Globale Variablen einfach bedeuten, dass Sie zugegriffen werden kann, in der das script unabhängig vom Umfang; das bedeutet nicht, dass Sie gesendet werden können zwischen den Skripten.
Also entweder Sie haben für die übergabe der Variablen mit dem $_SESSION-array (dieses speichert einen cookie auf dem client-computer, also nicht gesendet werden keine sensiblen Daten durch das array) oder Sie können entweder mit GET oder POST zwischen den scripts die Variablen gesendet werden.
Jede Anfrage wird behandelt, indem eine php-Instanz seiner eigenen. Globale Variablen werden in php Zugriff nur von innerhalb der gleichen php-Instanz. Aber Sie können so etwas wie die memchached-Modul zum Austausch von Daten zwischen verschiedenen Instanzen (die sollten in der Regel schneller als das schreiben der Daten auf das Dateisystem).
Nicht als solche, aber Sie können Sie verwenden, cookies oder sessions zu pflegen Daten für die Dauer von einem Benutzer-Browser-Erfahrung, oder Sie können schreiben, um eine Datenbank oder eine Datei auf der Festplatte, wenn der Bedarf an Informationen zu bestehen, die darüber hinaus.
Anderen gemeinsamen Ersatz für Globale Variablen in PHP ist die gemeinsame Nutzung einer Datenbank wie MySQL (wenn auch nicht perfekt)
Globale Variablen sind schlecht, in den meisten Programmieren. Sie sind besonders schlimm in Multithread - /multiuser-Systeme wie webapps. Vermeiden. Wenn Sie Globale Variablen verwenden (anstatt als Globale Konstanten) stellen Sie in einer Datenbank mit Transaktionen, die Bewachung updates.
Seit Sie sprechen über verschiedene Skripts obwohl, es klingt wie das, was Sie wirklich wollen, ist ein web application framework in eine Anwendungs-orientierte Sprache --- so etwas wie Django (python) oder Rails (ruby). Diese lassen Sie Sie denken, dass Ihr code viel mehr wie ein zusammenhängendes PROGRAMM, sondern als eine Menge von lose verbundenen Skripte, die web-Anfragen.
Machte ich eine kleine Bibliothek (~2 KB; <100 Zeilen), die es Ihnen ermöglicht, genau dies zu tun: varDx
Es hat Funktionen zum schreiben, Lesen, ändern, überprüfen und löschen von Daten.
Es implementiert die Serialisierung, und unterstützt daher alle Datentypen.
Hier ist, wie können Sie es verwenden: