Seite 1 von 3

PHP: Funktionen inkludieren

Verfasst: Di Nov 02, 2010 6:59 pm
von naums
Beispielcode:

index.php

Code: Alles auswählen

<?php
$get=$_GET;

global $get;

include ("functions.php");

counting();
?>
functions.php:

Code: Alles auswählen

<?php
function counting()
{
    die($get["pos"]);
};
?>
Frage: warum ist $get nicht global, sodass ich $get in counting() benutzen kann???

Re: PHP: Funktionen inkludieren

Verfasst: Di Nov 02, 2010 7:08 pm
von cloidnerux
Frage: warum ist $get nicht global, sodass ich $get in counting() benutzen kann???
Weil es meines Wissens nach $_GET["name"] heißt und es aus gründen der Sicherheit nicht in andere Dateien übertragen werden sollte.
Wieso übergibst du nicht einfach den Inhalt des get aufrufes per Parameter?

Re: PHP: Funktionen inkludieren

Verfasst: Di Nov 02, 2010 7:15 pm
von naums
$_GET ... wie auch immer $get halt. das Array wird global gemacht. Warum wird das nicht wirklich global gemacht? natürlich geht das, die als Parameter zu übergeben, aber da isses doch einfacher den Code einfach in die index.php einzufügen, wo der ausgeführt werden soll.

Re: PHP: Funktionen inkludieren

Verfasst: Di Nov 02, 2010 7:36 pm
von Xin
naums hat geschrieben: functions.php:

Code: Alles auswählen

<?php
function counting()
{
    global $get;

    die($get["pos"]);
};
?>
...wenn ich mich recht entsinne.

Re: PHP: Funktionen inkludieren

Verfasst: Di Nov 02, 2010 7:43 pm
von naums
und woher soll counting() dann $get kennen? das macht für mich noch weniger sinn.

Re: PHP: Funktionen inkludieren

Verfasst: Di Nov 02, 2010 7:44 pm
von Xin
naums hat geschrieben:und woher soll counting() dann $get kennen? das macht für mich noch weniger sinn.
global sagt counting, dass es die Variable $get schon bekannt ist und nicht neu angelegt werden muss. counting nimmt sich $get aus dem globalen Namensraum.

Re: PHP: Funktionen inkludieren

Verfasst: Di Nov 02, 2010 7:48 pm
von naums
kaum zu glauben aber es klappt.

aber das in der index.php:

global $get; macht doch das $get global, oder irre ich etwa?

Re: PHP: Funktionen inkludieren

Verfasst: Di Nov 02, 2010 9:02 pm
von Xin
naums hat geschrieben:kaum zu glauben aber es klappt.
Danke, dass Du an mich und Fähigkeiten kaum glaubst ;-)
naums hat geschrieben: aber das in der index.php:

global $get; macht doch das $get global, oder irre ich etwa?
Nein, $get ist global. Und globale Variablen sind in Funktionen nicht erreichbar, sofern Du nicht darauf hinweist, dass sie im globalen Namensraum liegen.
Ansonsten erzeugt Dir PHP nämlich eine neue, lokale Variable.

Re: PHP: Funktionen inkludieren

Verfasst: Di Nov 02, 2010 9:05 pm
von naums
soll also heißen, ich sage $a=2; und $a ist dann sofort global? Also muss ich die Variable nicht erst mit global $a; global machen? Ich dächte (kann mich jetzt irren) das im Manual aber so gelesen zu haben, ich such eben mal noch danach.

hab grade bei $GLOBALS was gefunden:
Hinweis: Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Re: PHP: Funktionen inkludieren

Verfasst: Di Nov 02, 2010 10:40 pm
von Xin
naums hat geschrieben:soll also heißen, ich sage $a=2; und $a ist dann sofort global? Also muss ich die Variable nicht erst mit global $a; global machen? Ich dächte (kann mich jetzt irren) das im Manual aber so gelesen zu haben, ich such eben mal noch danach.

hab grade bei $GLOBALS was gefunden:
Hinweis: Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.
Superglobale... omg... ;-)

Ich bin kein PHP-Spezialist... ich programmiere Webseiten in C++... ich mag kein PHP ^^