| 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! Post your PHP questions here! |
 |
|

17-07-2009, 00:48
|
|
Montephp
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 4
|
|
Assoziative Arrays und Variablen
Moin moin da draußen,
ich bin kurz davor den Rechner aus dem Fenster zu werfen. Deshalb bitte keine "im Forum suchen"-Antworten. Ich suche bereits seit mehreren Stunden... :-(
Hier also mein Problem:
Ich möchte gerne einen Assoziativen Array erstellen, in dem 'dir_cache' und 'dir_upload' variabel gehalten werden. Dies scheint so aber offensichtlich nicht zu funktionieren.
PHP-Code:
$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
);
Mein Lösungsansatz:
Es hat wohl was damit zu tun, dass $id kein string ist. Wenn ich in den array direkt z.b.
PHP-Code:
'dir_cache' => dirname(__FILE__).'/../img/news/33/cache'
schreibe, funktioniert alles. Ist aber leider wieder nur statisch.
Vielen Dank für eure Hilfe
|

17-07-2009, 01:08
|
|
PHP-Desaster
PHP Expert
|
|
Registriert seit: Mar 2006
Beiträge: 3.104
|
|
Was steht denn in $id? Und was heißt
Zitat:
|
Dies scheint so aber offensichtlich nicht zu funktionieren.
|
? Die Syntax sieht korrekt aus.
|

17-07-2009, 01:22
|
|
Montephp
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 4
|
|
$id ist ein Übergabeparameter indem eine Zahl drin steht. Also die ID eines Newseintrages.
Zitat:
Und was heißt
Zitat:
Dies scheint so aber offensichtlich nicht zu funktionieren.
?
|
Naja, wenn es so funktionieren würde, hätte ich ja nicht gefragt...
|

17-07-2009, 01:32
|
|
Montephp
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 4
|
|
Achso, folgende Serverdaten:
PHP Version: 5.2.10-0.dotdeb.1
System: Linux weizenbaum 2.6.26-2-amd64 #1 SMP Thu May 28 21:28:49 UTC 2009 x86_64
wenn ich
ausschreibe, funktioniert es.
jetzt kommt Sie so in spiel:
PHP-Code:
function news_content($id)
{
...
$userconfig = array(...);
...
}
|

17-07-2009, 03:20
|
|
PHP-Desaster
PHP Expert
|
|
Registriert seit: Mar 2006
Beiträge: 3.104
|
|
Na, dann kommt die ID wohl falsch an. Mal debuggen. Und das error_reporting hochdrehen. Und mal definieren, was statt der korrekten ID ankommt, beschreibe doch wenigstens mal das aktuelle Phänomen. Es ist auf jeden Fall ein Fehler in deinem Code und um den zu finden sind etwas mehr Informationen nötig.
|

17-07-2009, 13:57
|
|
|
Zitat:
Zitat von Montephp
PHP-Code:
function news_content($id) { ... $userconfig = array(...); ... }
|
PHP-Code:
function news_content($id) { global $userconfig; ... $userconfig = array(...); ... }
|

17-07-2009, 14:19
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.212
|
|
Was soll der global-Pfusch?
|

17-07-2009, 14:23
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 644
|
|
Zitat:
|
Es hat wohl was damit zu tun, dass $id kein string ist.
|
Der Typ der Variablen $id ist doch vollkommen egal. Wenn sie mit "." verknüpft wird, konvertiert PHP sie automatisch nach String und fertig. Im schlimmsten Fall würde dann dein zusammengebauter Pfad nicht passen.
Zitat:
Wenn ich in den array direkt z.b.
PHP-Code:
'dir_cache' => dirname(__FILE__).'/../img/news/33/cache'
schreibe, funktioniert alles.
|
Definiere doch mal bitte "funktioniert alles" und "funktioniert nicht" genauer.
Und lass dir $id (innerhalb deiner Funktion) und $userconfig['dir_cache'] für beide Fälle von var_dump() anzeigen.
Dann sehen wir weiter (oder klarer  ).
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
|

17-07-2009, 14:28
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.212
|
|
Zitat:
Zitat von piratos
|
Nur weil etwas geht, heißt es noch lange nicht, dass man es so machen soll.
Auf global sollte man großteils verzichten. Das ist sehr sehr schlechter Programmierstil.
|

17-07-2009, 14:31
|
|
|
Da scheinst du ja eine festgefahrene Meinung zu haben.
Völliger Unsinn wenn man weiss was man macht.
Schau dir mal z.B. Phpmyadmin an wie die auf globals setzen.
Ansonsten ist die Frage des Fragestelllers beantwortet.
Geändert von piratos (17-07-2009 um 14:33 Uhr)
Grund: Ergänzung
|

17-07-2009, 14:36
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.212
|
|
Zitat:
Zitat von piratos
Da scheinst du ja eine festgefahrene Meinung zu haben.
Völliger Unsinn wenn man weiss was man macht.
|
Völlig unnötig, wenn man sauber und objektorientiert programmiert. Es gibt ganz wenige Sonderfälle, wo ein global sinnvoll ist.
Zitat:
Zitat von piratos
Schau dir mal z.B. Phpmyadmin an wie die auf globals setzen.
|
Nur weils andere scheiße machen, muss man es ja selber nicht genauso machen, oder? Oder ist für dich der Source-Code von phpMyAdmin die Referenz? Dann hast du wohl noch nie in deinem Leben guten Source-Code gesehen.
Zitat:
Zitat von piratos
Ansonsten ist die Frage des Fragestelllers beantwortet.
|
Es gibt viele Wege nach Rom. Du hast ihm den schlechtesten gezeigt. Bravo.
|

17-07-2009, 14:40
|
|
PHP-Desaster
PHP Expert
|
|
Registriert seit: Mar 2006
Beiträge: 3.104
|
|
Zitat:
|
Völliger Unsinn wenn man weiss was man macht.
|
Völliger Unsinn, wenn man weiß wie es besser geht!
Zitat:
|
Schau dir mal z.B. Phpmyadmin an wie die auf globals setzen.
|
Bevor du dir an dem Code von PMA ein Beispiel nimmst, schau dir doch mal die Codestruktur besser designter Systeme wie zum Beispiel das Zend FW oder Doctrine an.
Zitat:
|
Es gibt viele Wege nach Rom. Du hast ihm den schlechtesten gezeigt. Bravo.
|
Falls dass denn überhaupt eine Lösung war. Aber ohne einen weiteren klärenden Beitrag vom TO wird das nicht wirklich beantwortbar sein.
|

17-07-2009, 14:44
|
|
|
Zitat:
|
Völlig unnötig, wenn man sauber und objektorientiert programmiert
|
Man kann aus jeder Furzfunktion ein OOP Klasse machen, aber klug ist das nicht.
Zitat:
|
Nur weils andere scheiße machen, muss man es ja selber nicht genauso machen, oder? Oder ist für dich der Source-Code von phpMyAdmin die Referenz? Dann hast du wohl noch nie in deinem Leben guten Source-Code gesehen.
|
Ich schreibe laufend guten Code, aber das kannst du dir wohl nicht vorstellen.
Schlechte Progger sind immer die, welche mit einer vorgefassten Meinung ran gehen, denn damit hast du Recht.
Zitat:
|
Es gibt viele Wege nach Rom.
|
Und solche Dinge
Zitat:
|
Du hast ihm den schlechtesten gezeigt. Bravo.
|
wirken nicht gerade qualifiziernd.
|

17-07-2009, 14:52
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.865
|
|
Zitat:
|
Und solche Dinge ........ wirken nicht gerade qualifiziernd.
|
Deine Aussagen sollen "besser" sein?
Unsinn!
Du scheinst zu verbohrt zu sein, sonst würde ich dir evtl eine Begründung liefern.
Geändert von combie (17-07-2009 um 15:02 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| 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.
HTML-Code ist aus.
|
|
|
|
PHP News
|