PHP: Funktionen inkludieren

Fragen zum Thema HTML, JavaScript, PHP
Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

PHP: Funktionen inkludieren

Beitrag von naums » Di Nov 02, 2010 6:59 pm

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???
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: PHP: Funktionen inkludieren

Beitrag von cloidnerux » Di Nov 02, 2010 7:08 pm

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?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: PHP: Funktionen inkludieren

Beitrag von naums » Di Nov 02, 2010 7:15 pm

$_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.
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: PHP: Funktionen inkludieren

Beitrag von Xin » Di Nov 02, 2010 7:36 pm

naums hat geschrieben: functions.php:

Code: Alles auswählen

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

    die($get["pos"]);
};
?>
...wenn ich mich recht entsinne.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: PHP: Funktionen inkludieren

Beitrag von naums » Di Nov 02, 2010 7:43 pm

und woher soll counting() dann $get kennen? das macht für mich noch weniger sinn.
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: PHP: Funktionen inkludieren

Beitrag von Xin » Di Nov 02, 2010 7:44 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: PHP: Funktionen inkludieren

Beitrag von naums » Di Nov 02, 2010 7:48 pm

kaum zu glauben aber es klappt.

aber das in der index.php:

global $get; macht doch das $get global, oder irre ich etwa?
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: PHP: Funktionen inkludieren

Beitrag von Xin » Di Nov 02, 2010 9:02 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: PHP: Funktionen inkludieren

Beitrag von naums » Di Nov 02, 2010 9:05 pm

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.
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: PHP: Funktionen inkludieren

Beitrag von Xin » Di Nov 02, 2010 10:40 pm

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 ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten