anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: So 08 Jun, 2025 21:23

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Quotieren
BeitragVerfasst: Mo 02 Feb, 2009 16:44 
Offline
Held
Held

Registriert: Fr 17 Okt, 2008 20:06
Beiträge: 253
Geschlecht: Männlich
LoGD: off
Hi!

Mir ist jetzt grad kein besserer Titel eingefallen^^

Öftersmal wird erwähnt, dass man doch lieber z.b.

PHP:
$session['user']['gold']


schreiben soll anstatt

PHP:
$session[user][gold]


und was mit jetzt schon ein paar mal aufgefallen ist.. in den Standartconfigs sind kaum solche Sachen quotiert.


Weil widerum sind ja manche quotiert

[auszug aus original academy.php]

PHP:
if ($session['user']['drunkenness'] > 0) // too drunk to learn


Und nun zu meiner eigentlcihen Frage^^


Sollte ich jede Datei überarbeiten und die sachen alle quotieren oder lieber lassen?

_________________
Wenn ihr mir sagt wie ich es als Datei hochlade, dann kann ich die Source hochladen die ihr wollt .D


Zuletzt geändert von Patzue am Mo 02 Feb, 2009 16:47, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Quotieren
BeitragVerfasst: Mo 02 Feb, 2009 16:46 
Offline
Held
Held
Benutzeravatar

Registriert: Mi 10 Dez, 2008 17:10
Beiträge: 235
Wohnort: München
Geschlecht: Männlich
LoGD: läuft derzeit Lokal
also ich änder das immer mit wenn ich ne datei eh am bearbeiten bin und das seh...
wofür das nu genau is kann ich dir auch nicht genau sagen, aber wenns sicherer/besser ist warum nicht :)

_________________
Hungrig in München? www.24lieferservice.de
___________________________________________________
spiele auch Du Quests of Gallendor (Welt 1 nur über Einladung möglich)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Quotieren
BeitragVerfasst: Mo 02 Feb, 2009 16:48 
Offline
Held
Held

Registriert: Fr 17 Okt, 2008 20:06
Beiträge: 253
Geschlecht: Männlich
LoGD: off
ja aber mir ist aufgefallen, als ich ein mod installiert habe, dass da drin ein teil quotiert waren und ein teil widerum nicht^^

_________________
Wenn ihr mir sagt wie ich es als Datei hochlade, dann kann ich die Source hochladen die ihr wollt .D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Quotieren
BeitragVerfasst: Mo 02 Feb, 2009 17:33 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 11 Feb, 2006 19:39
Beiträge: 596
Wohnort: Stuttgart - Waiblingen
Geschlecht: Männlich
LoGD: http://logd.legend-of-vinestra.de/source
Skype: da-chosen-one
$session['user'] ist ein Array. http://de2.php.net/array

Der Array-Key ist entweder eine Zahl (eigentlich int = integer http://www.dynamic-webpages.de/php/language.types.integer.php) oder eine Zeichenkette (= string http://de2.php.net/strings)
Zwar ist 'user' nicht der Array-Key (das ist das, was danach kommt, also gold in $session['user']['gold']), aber es sollte/muss sich trotzdem um einen String handeln.

Strings werden immer in quotes (") oder singlequotes (') geschrieben.
Wird dies nicht getan, geht der Interpreter davon aus, dass es sich um eine Konstante (http://de.wikibooks.org/wiki/Websiteentwicklung:_PHP:_Konstanten) handelt.
Die Konstante user oder was auch immer ist jedoch sicherlich nicht gesetzt.

Du kannst das ganze ja mal überprüfen, wenn du z.B. das an den Anfang deiner common.php setzt:

PHP:
define('user', 'blubb');


Die ' (In Arrayschlüsseln werden üblicherweise singlequotes benutzt) sollten also hinzugefügt werden.


MfG
Draz


€: Achja: Es sieht nicht nur blöd aus, es ist auch wirklich FALSCH, wenn die ' fehlen!!

€²: Eliwood hat dazu mal etwas ganz Hilfreiches und Nettes geschrieben. Ich missbrauche mal dein Forum als Quelle dafür Wasili^^
http://forum.basi-net.org/viewtopic.php ... 0df0d78c28

_________________
$this->bbcode_second_pass_code('', '(define-record-procedures choco-cookie
make-choco-cookie choco-cookie?
(choco-cookie-choco
choco-cookie-cookie))

(define Prinzenrolle
(make-choco-cookie choco-cookie-choco-standard (* 2 choco-cookie-cookie-standard)))')


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Quotieren
BeitragVerfasst: Mo 02 Feb, 2009 19:23 
Offline
Held
Held

Registriert: Fr 17 Okt, 2008 20:06
Beiträge: 253
Geschlecht: Männlich
LoGD: off
ok danke.. aber bei variabeln weg lassen nicht? Oder müsste ich es dann nur nochmals neu definieren? Weil wenn ich ne Variabel quotiere meckert logd rum.. :D


Edit: steht ja in dem Post weiter unten.. Vielen dank für die Hilfe:)

_________________
Wenn ihr mir sagt wie ich es als Datei hochlade, dann kann ich die Source hochladen die ihr wollt .D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Quotieren
BeitragVerfasst: Mo 02 Feb, 2009 21:27 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Nur um Wömöglicher Verwirrung vor zu beugen:
$this->bbcode_second_pass_code('', '
$array = array('a' => 1, 'b' => 2, '"a"'=>'Das X');
$feld = "a";
echo $array[a]; // liefert 1, ist aber nicht gut, wirft eine Warnung
define('a','b');
echo $array[a]; // liefert 2, da a jetzt als Konstante angesehen wird - ist so auch richtig, aber es empfihlt sich zur Übersicht Konstanten immer groß zu schreiben
echo $array[$feld]; // liefert 1 und ist sauber
echo $array["$feld"]; // liefert 1 und wirft keine Warnung da PHP Variablen in doublequotes immer Einsetzt, doch Achtung:
echo $array['$feld']; // liefert nichts, da im array nach dem Schlüssel '$feld' gesucht wird, nicht nach dessen Inhalt 'a' als Schlüssel!
// Um an das letzte Feld des Arrays ("Das X") zu kommen wird es schon schwerer:
echo $array['"' . $feld . '"']; /* oder */ echo $array["\"$feld\""];
')

Das mag zwar immer noch etwas verwirrend sein, aber wenn man sich ein paar Grundsätze verinnerlicht, kann man richtig hässlich zu findende Fehler vermeiden:
1.) Wenn man Arrayschlüssel als String angibt, immer Quotes vervenden (eigentlich egal ob einzel, oder doppel)
2.) Konstanten, speziell wenn sie als Arrayschlschlüssel verwendet werden, immer groß schreiben
3.) Singequotes werden nicht mehr weiter verarbeitet! Wenn da eine Variable oder eine Escape-Sequenz wie \" reingeschrieben wird, dann bleibt die auch so. Doublequotes werden hingegen interpretiert!
4.) Unklarheiten bei Arrayschlüsseln möglichst vermeiden, also nicht so etwas wie: $arr = array(1 => 'a', '1' => 'b', '"1"' => 'c');

Und ansonsten... den Code immer schon Kommentieren/Dokumentieren!

Auric

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum