Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 06. Januar 2012 05:59
- Klener
- probiert CMS/ms aus
- Registriert: 15. November 2011
- Beiträge: 45
- Webseite
[PHP] globals funktionieren in Funktion nicht?
Guten Morgen,
ich bin hier grad schier am Verzweifeln!
Ich versuche gerade in meiner Datei "action.default.php", welche für die Ausgabe zuständig ist, wenn das Tag {WPPosts} aufgerufen wird, eine neue Funktion zu "basteln".
Das sollte ja auch eigentlich kein Problem sein, aaaaber: Es scheint, als wollen die globals nicht funktionieren?
Entweder ich seh' den Wald vor lauter Bäumen nicht mehr, oder hier stimmt etwas nicht...
Mein Code sieht in etwa so aus:
[== PHP ==]
<?php
if (!isset($gCms)) exit;
// get params
$blogurl = $params['blogurl'];
echo $blogurl; // funktioniert
neu(); // gibt nur ---> <----- aus
echo $blogurl; // funktioniert
function neu() {
global $blogurl;
echo '<br /> ---> '.$blogurl.' <---- <br />';
}
Wie in den Kommentaren schon steht wird $blogurl 2x ausgegeben, jedoch nicht, wenn ich es über die Funktion versuche (was ja eigentlich dank global gehen sollte, oder?)
Bin ich jetzt wirklich zu doof?
Vielen Dank
Grüße
Klener
Offline
#2 06. Januar 2012 09:56
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: [PHP] globals funktionieren in Funktion nicht?
Was passiert denn, wenn Du $blogurl der Funktion übergibst? Also in etwa so:
neu($blogurl);
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#3 06. Januar 2012 12:37
- piratos
- arbeitet mit CMS/ms
- Registriert: 12. August 2011
- Beiträge: 545
Re: [PHP] globals funktionieren in Funktion nicht?
Wenn man den Code so als Alleinscript nimmt, dann funzt es problemlos.
Offline
#4 06. Januar 2012 14:33
- Klener
- probiert CMS/ms aus
- Registriert: 15. November 2011
- Beiträge: 45
- Webseite
Re: [PHP] globals funktionieren in Funktion nicht?
Oh man, daran hab' ich gar nicht gedacht, danke @Andiministrator!
Wenn man die Variable(n) als Parameter übergibt funktionierts.
Trotzdem etwas eigenartig, denn wie piratos schon gesagt hat, funktioniert das Script alleine (ohne CMSMS) einwandfrei.
Ich markier' das hier trotzdem mal als gelöst. :-P
Grüße
Klener
Offline
#5 06. Januar 2012 14:37
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [PHP] globals funktionieren in Funktion nicht?
Globale Variablen
Eine globale Variable definiert man implizit durch ihre Benutzung innerhalb des globalen Namensraumes, also einfach durch
$a = 10;
außerhalb jeder Klasse oder Funktion.
(quelle: http://www.php-faq.de/q-php-variablen.html)
Ich vermute mal der fett markierte Teil ist bei Dir nicht gegeben.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#6 06. Januar 2012 14:39
- Klener
- probiert CMS/ms aus
- Registriert: 15. November 2011
- Beiträge: 45
- Webseite
Re: [PHP] globals funktionieren in Funktion nicht?
[...]
außerhalb jeder Klasse oder Funktion.(quelle: http://www.php-faq.de/q-php-variablen.html)
Ich vermute mal der fett markierte Teil ist bei Dir nicht gegeben.
Das könnte natürlich gut möglich sein, weiß ich jetzt nicht, wie CMSMS das händelt mit dem Einbinden.
Offline
#7 06. Januar 2012 14:42
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [PHP] globals funktionieren in Funktion nicht?
Die action.default.php ist irgendwie ein Bestandteil der Klasse. In dieser Datei kann direkt mit $this->Funktionsname oder $this->varname auf die Modulklasse zugegriffen werden.
Dies legt für mich den Schluss nahe, dass diese Dateien ein Bestandteil der Modulklasse (allenfalls der Hauptmodulklasse) sind
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#8 06. Januar 2012 15:02
- piratos
- arbeitet mit CMS/ms
- Registriert: 12. August 2011
- Beiträge: 545
Re: [PHP] globals funktionieren in Funktion nicht?
Wenn Bestandteil einer Klasse definierst du einfach die Var und sprichst sie mit
$this->blogurl an, das wars.
global ist dann nicht nötig.
Offline
Seiten: 1