php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #16 (permalink)  
Alt 17-07-2009, 14:56
piratos
 Guest
piratos
Beiträge: n/a
Standard

Zitat:
Du scheinst zu verbohrt zu sein
Nö ich sehe das nur nicht so verbissen wie andere.
Mit Zitat antworten
  #17 (permalink)  
Alt 17-07-2009, 15:00
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

@piratos: global vorzuschlagen war wirklich nicht angebracht. Egal ob du mit global programmierst oder nicht, in dem hier vorliegenden Fall wissen wir doch gar nicht ob die Funktion am Ende nicht $userconfig zurückgibt.
Mit Zitat antworten
  #18 (permalink)  
Alt 17-07-2009, 15:07
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
Nö ich sehe das nur nicht so verbissen wie andere.
Das hat nichts mit verbissen zu tun.
Ehr mit Erfahrung und Disziplin.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #19 (permalink)  
Alt 17-07-2009, 15:09
piratos
 Guest
piratos
Beiträge: n/a
Standard

PHP-Code:
<?php
 $id
=0;
    
$userconfig = array(
    
'overwrite_cache' => 'off',                 //Cache bei jedem Aufruf neu erstellen: on = an, off = aus 
    
'pic_image_quality' => 90,                  //Bildqualitaet: 0 = schlechteste , 100 = beste
    
'show_metadata_iptc' => 'on',               //IPTC-Ausgabe: on = an, off = aus
    
'show_metadata_exif' => 'off',              //EXIF-Ausgabe: on = an, off = aus 
    
'dir_cache' => dirname(__FILE__).'/../img/news/'.$id.'/cache',          //Pfad zum Cache Verzeichnis
    
'dir_upload' => dirname(__FILE__).'/../img/news/'.$id,        //Pfad zum Upload Verzeichnis
    
'http_method' => 'GET',                     //Uebermittlungsmethode der Query-Variable: PATHINFO oder GET
    
'http_var_name' => 'q',                     //Name der Query-Variablen die per http_method uebergeben wird
    
'response_type' => 'json'                   //Art der Antwort: direkt = json, include = php
);  
function 
news_content($id)
{ global 
$userconfig;

        
$userconfig = array(
    
'overwrite_cache' => 'off',                 //Cache bei jedem Aufruf neu erstellen: on = an, off = aus 
    
'pic_image_quality' => 90,                  //Bildqualitaet: 0 = schlechteste , 100 = beste
    
'show_metadata_iptc' => 'on',               //IPTC-Ausgabe: on = an, off = aus
    
'show_metadata_exif' => 'off',              //EXIF-Ausgabe: on = an, off = aus 
    
'dir_cache' => dirname(__FILE__).'/../img/news/'.$id.'/cache',          //Pfad zum Cache Verzeichnis
    
'dir_upload' => dirname(__FILE__).'/../img/news/'.$id,        //Pfad zum Upload Verzeichnis
    
'http_method' => 'GET',                     //Uebermittlungsmethode der Query-Variable: PATHINFO oder GET
    
'http_var_name' => 'q',                     //Name der Query-Variablen die per http_method uebergeben wird
    
'response_type' => 'json'                   //Art der Antwort: direkt = json, include = php
);
}  

var_dump($userconfig);
news_content(4711);
echo 
'<hr />';
var_dump($userconfig);
?>
Ausgaben:
HTML-Code:
array(9) {   ["overwrite_cache"]=>   string(3) "off"   ["pic_image_quality"]=>   int(90)   ["show_metadata_iptc"]=>   string(2) "on"   

["show_metadata_exif"]=>   string(3) "off"   ["dir_cache"]=>   string(47) "/srv/www/htdocs/leipzigtest/../img/news/0/cache"   ["dir_upload"]=>   string(41) 

"/srv/www/htdocs/leipzigtest/../img/news/0"   ["http_method"]=>   string(3) "GET"   ["http_var_name"]=>   string(1) "q"   ["response_type"]=>   string(4) "json" 

}
 array(9) {   ["overwrite_cache"]=>   string(3) "off"   ["pic_image_quality"]=>   int(90)   ["show_metadata_iptc"]=>   string(2) "on"   ["show_metadata_exif"]=> 

  string(3) "off"   ["dir_cache"]=>   string(50) "/srv/www/htdocs/leipzigtest/../img/news/4711/cache"   ["dir_upload"]=>   string(44) "/srv/www/htdocs
/leipzigtest/../img/news/4711"   ["http_method"]=>   string(3) "GET"   ["http_var_name"]=>   string(1) "q"   ["response_type"]=>   string(4) "json" }
Mit
dem Ansatz kann man leben.
Mit Zitat antworten
  #20 (permalink)  
Alt 17-07-2009, 15:13
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Ersetze
PHP-Code:
function news_content($id)
{ global 
$userconfig
durch
PHP-Code:
function news_content($id, &$userconfig)

_Dann_ kann man damit leben.

global ist hier einfach unnötig und kann eine zusätzliche Fehlerquelle darstellen.
Mit Zitat antworten
  #21 (permalink)  
Alt 17-07-2009, 15:21
piratos
 Guest
piratos
Beiträge: n/a
Standard

Es kommt zuerst drauf an den betreffenden User darauf hinzuweisen das die Var ausserhalb des Scopes liegt (hat aber keiner bis auf meine Kleinigkeit).

Für Leute die sich wegen global oder nicht schütteln kann man es auch so machen:

PHP-Code:
<?php
 $id
=0// default
    
$userconfig = array(
    
'overwrite_cache' => 'off',                 //Cache bei jedem Aufruf neu erstellen: on = an, off = aus 
    
'pic_image_quality' => 90,                  //Bildqualitaet: 0 = schlechteste , 100 = beste
    
'show_metadata_iptc' => 'on',               //IPTC-Ausgabe: on = an, off = aus
    
'show_metadata_exif' => 'off',              //EXIF-Ausgabe: on = an, off = aus 
    
'dir_cache' => dirname(__FILE__).'/../img/news/'.$id.'/cache',          //Pfad zum Cache Verzeichnis
    
'dir_upload' => dirname(__FILE__).'/../img/news/'.$id,        //Pfad zum Upload Verzeichnis
    
'http_method' => 'GET',                     //Uebermittlungsmethode der Query-Variable: PATHINFO oder GET
    
'http_var_name' => 'q',                     //Name der Query-Variablen die per http_method uebergeben wird
    
'response_type' => 'json'                   //Art der Antwort: direkt = json, include = php
);  
function 
news_content($id,$config)


        
$config['dir_cache']= dirname(__FILE__).'/../img/news/'.$id.'/cache';
    
$config['dir_upload']= dirname(__FILE__).'/../img/news/'.$id;
        return 
$config;
}  

var_dump($userconfig);
$userconfig=news_content(4711,$userconfig);
echo 
'<hr />';
var_dump($userconfig);
?>
Noch bequemer wäre die Nutzung über Reference, das aber wäre nicht E_STRICT.

Wer aus einer solchen Pippifaxfunktion eine Klasse stricken will - nun gut .
Mit Zitat antworten
  #22 (permalink)  
Alt 17-07-2009, 15:28
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
Es kommt zuerst drauf an den betreffenden User darauf hinzuweisen das die Var ausserhalb des Scopes liegt (hat aber keiner bis auf meine Kleinigkeit).
Tut sie gar nicht. Das nimmst du nur an.

Zitat:
Für Leute die sich wegen global oder nicht schütteln kann man es auch so machen
Für dich scheint es Geschmackssache zu sein. Ist es aber nicht. global ist Mist und das sieht jeder so, der weiß was er tut. Ich kann dir aus dem Stand Beispiele geben wo du mit global gehörig gegen die Wand fährst. Nicht weil der Code nicht funktionieren würde, sondern weil er unwartbar wird. Denn wenn ich eine Funktion aufrufe, erwarte ich, dass sie mit den Eingaben irgendwas macht und mir ggf. etwas zurückgibt. Vielleicht macht sie auch eine Ausgabe. Aber sie ändert nichts außerhalb ihres Scopes. Das ist sozusagen Gesetz. Sonst hast du nämlich als Programmierer überhaupt keine Ahnung mehr was im globalen Scope los ist.
Mit Zitat antworten
  #23 (permalink)  
Alt 17-07-2009, 15:38
piratos
 Guest
piratos
Beiträge: n/a
Standard

Langer Rede kurzer Sinn, schliesslich kommt es darauf ein eine Lösung anzubieten und das habe ich (und ihr ?).

Global hin und global her, wer weiss was er bei der Nutzung macht kann Vorteile daraus ziehen und das bedeutet ja auch nicht das man das überall so machen wird.

Es ist keine Geschmackssache, war hier aber im Zusammenhang mit dem Hinweis auf das Manual (Scope) sinnvoll, den ganz offenbar bestand ja die Aufgabe darin eine globale Variable inhaltlich zu verändern.
Mit Zitat antworten
  #24 (permalink)  
Alt 17-07-2009, 15:55
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Du hast das Problem des TO (Murks in $id) gar nicht verstanden sondern ein ganz anderes Problem (Scope von $userconfig) hinein interpretiert. Mit dem Scoping ist doch alles in Ordnung soweit wir das beurteilen können.

Im ersten Beitrag hat der TO die umgebende Funktion nicht mit gepostet. Später schon. Du hast im ersten Beitrag globalen Scope gesehen und beim zweiten Beitrag angenommen, $userconfig soll _zusätzlich_ in einer Funktion bearbeitet werden. Soll es aber nicht. Diese Variable gibt es vielleicht _nur_ in der Funktion.
Und die Funktion ist vielleicht eine Methode in einer Klasse in einem Namespace ... also immer schön vorsichtig mit Annahmen über Scopes. Ich sehe im ersten Beitrag keinen globalen Scope sondern (spätestens in Kombination mit dem zweiten Beitrag) fehlende Informationen über den Kontext.

Geändert von onemorenerd (17-07-2009 um 15:57 Uhr)
Mit Zitat antworten
  #25 (permalink)  
Alt 17-07-2009, 15:57
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von piratos Beitrag anzeigen
den ganz offenbar bestand ja die Aufgabe darin eine globale Variable inhaltlich zu verändern.
Woran du das festmachst, würde mich mal interessieren. Davon hat der TO doch nie etwas gesagt.
Aber nun, warten wir erstmal auf die Rückmeldung durch letzteren.
Mit Zitat antworten
  #26 (permalink)  
Alt 17-07-2009, 16:03
piratos
 Guest
piratos
Beiträge: n/a
Standard

Ich würde sagen du liest mal den gesamten Code der vom Fragesteller gepostet wurde (den muss ich ja nicht wiederholen).

Wenn eine var ausserhalb einer Funktion definiert wurde, und wenn man den Inhalt dieser var mit einer Funktion ändern will ohne aber eine Zugriff darauf zu haben (global oder über Para), dann geht das natürlich nicht.

PS. er möchte die Pfade mit der ID verändern.
Mit Zitat antworten
  #27 (permalink)  
Alt 17-07-2009, 16:30
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Selbst nach mehrmaligem lesen aller Postings in diesem Thread, kann ich nicht sagen/erkennen, dass das zu verändernde Array wirklich ein globales ist. Deine global Lösung wird also mit großer Wahrscheinlichkeit nicht funktionieren. Natürlich abhängig von dem uns nicht bekannten Kontext. Da es min. 2 Möglichkeiten gibt, wie man das universeller abhandeln kann, erlaube ich mir zu sagen: "Deine Lösung ist Mist!"
__________________
Wir werden alle sterben
Mit Zitat antworten
  #28 (permalink)  
Alt 17-07-2009, 16:46
piratos
 Guest
piratos
Beiträge: n/a
Standard

Zitat:
Zitat von combie Beitrag anzeigen
"Deine Lösung ist Mist!"
Frage 1 wo bleibt Deine - sehe keine ?! Riecht nach Klugsch.... um mal deine Ausrucksweise anzunehmen.
Frage 2 - wenn man sich die Mühe machen würde den Lösungsansatz zu testen würde man sehen das es funzt, soweit die Tatsachen bekannt sind - sehe keine echte Reaktion oder ?
Mit Zitat antworten
  #29 (permalink)  
Alt 17-07-2009, 17:01
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

1: Die besseren wurden schon gepostet! Warum sollte ich sie für dich nochmal nachplapperen?

2: Ich habe dir sachlich korrekt begründet WARUM deine Lösung mit hoher Wahrscheinlichkeit nicht funktioniert. Wenn du davor die Augen verschließen musst, dann ist das dein Problem. Aber dann musst du auch mit dem Wiederstand der "Wissenden" leben. Und die Kritik schlucken.

Zitat:
Riecht nach Klugsch.... um mal deine Ausrucksweise anzunehmen.
Kann sein, dass ich ein Klugscheißer bin. Dann ist das aber fundierte und qualitativ hochwertige Scheiße. (meistens)
__________________
Wir werden alle sterben
Mit Zitat antworten
  #30 (permalink)  
Alt 17-07-2009, 17:05
piratos
 Guest
piratos
Beiträge: n/a
Standard

Zitat:
Zitat von combie Beitrag anzeigen
1: Dann ist das aber fundierte und qualitativ hochwertige Scheiße. (meistens)
Stimmt - ich sehe keine einzige Lösung

a von dir
b oder andere von meiner abweichenden.

Dabei sollten wir es auch bewenden lassen, bringt nichts.

Geändert von piratos (17-07-2009 um 17:08 Uhr) Grund: Abschluss
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
array, string


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
WSDL und assoziative Arrays ezkimo XML 1 25-03-2009 12:07
[JavaScript] assoziative Arrays Benny-one HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 13 20-12-2004 10:26
auf assoziative Arrays zugreifen Aurelius HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 5 03-09-2003 13:34
Assoziative Arrays nach Max sortieren? LaHood PHP Developer Forum 7 06-03-2003 10:24
Assoziative Arrays??? V 9 1 9 V PHP Developer Forum 1 01-11-2002 06:25

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:29 Uhr.