anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 28 Mär, 2024 14:52

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Warum geht die function net?
BeitragVerfasst: Sa 02 Apr, 2005 20:38 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 04 Dez, 2004 02:34
Beiträge: 825
Zitat:
function give($type,$count){
$session['user']['$type']+=$count;
}

function take($type,$count){
$session['user']['$type']-=$count;
}

:cry:
habs mal über
take(turns,4);
versucht und was war?
garnichts..


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 02 Apr, 2005 20:46 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
schonmal mit return & global versucht?

[php]function give($type,$count){
global $session;
$give = $session[user][$type]+=$count;
return $give;
}

function take($type,$count){
global $session;
$take = $session[user][$type]-=$count;
return $take;
} [/php]

versuch mal so, bin mir nit sicha...


EDIT:
global = globale variable, damit kannst du variablen die sich woanders befinden somit benutzen aber nur solang sie auch includet bzw in verbindung mit dem Script stehn! (Hoffe das ist richtig so^^)

return = Wird die return() Anweisung innerhalb einer Funktion aufgerufen, wird die Ausführung der Funktion sofort beendet und das Argument als Wert des Funktionsaufrufs zurückgegeben. return() beendet auch die Ausführung einer eval() Anweisung oder einer Skriptdatei.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 02 Apr, 2005 20:59 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 04 Dez, 2004 02:34
Beiträge: 825
noch was aus Devilolien :baeh:
Zitat:
function set($type,$count){
global $session;
$set = $session[user][$type]=$count;
return $set;
}

so teste erst später muss ragnorak zoggen ^^
danke Kevz :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 02 Apr, 2005 21:06 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Devilzimti hat geschrieben:
noch was aus Devilolien :baeh:

wie darf ich das verstehn? :pein:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Warum geht die function net?
BeitragVerfasst: Sa 02 Apr, 2005 22:41 
Devilzimti hat geschrieben:
Zitat:
function give($type,$count){
$session['user']['$type']+=$count;
}

function take($type,$count){
$session['user']['$type']-=$count;
}

:cry:
habs mal über
take(turns,4);
versucht und was war?
garnichts..


Dann probiers mal mit
take("turns",4);


Nach oben
  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 02 Apr, 2005 23:00 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 04 Dez, 2004 02:34
Beiträge: 825
Kevz hat geschrieben:
Devilzimti hat geschrieben:
noch was aus Devilolien :baeh:

wie darf ich das verstehn? :pein:

meine Idee war :wink:
ohne "" gehts bei mir auch :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Warum geht die function net?
BeitragVerfasst: Sa 02 Apr, 2005 23:06 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Anonymous hat geschrieben:
Dann probiers mal mit
take("turns",4);


sollte funzen, aber ohne auch kannst genau so gut auch ' ' verwenden macht kein unterschied, außer das ' schneller ist als " soweit ich weiß habs irgendwie mal so mitbekommen aber egal^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Apr, 2005 02:04 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
Kevz hat geschrieben:
[php]function give($type,$count){
global $session;
$give = $session[user][$type]+=$count;
return $give;
}

function take($type,$count){
global $session;
$take = $session[user][$type]-=$count;
return $take;
} [/php]


Die Returns sind Unsinn, aber der Rest ist vollkommen richtig. ;)
Also so:
[php]function give($type,$count){
global $session;
$session[user][$type]+=$count;
}

function take($type,$count){
global $session;
$session[user][$type]-=$count;
} [/php]

Der Fehler war, daß $type beim Ändern jeweils in '' stand. Variablen stehen aber in der Regel frei bzw. wenn es in einen String umgewandelt werden soll (was aber unnötig ist) in doppelten Anführungszeichen ("").
Die Funktionsaufrufe funktionieren übrigens tatsächlich über z.B. take(turns,4) - allerdings ist das extrem unsauber und kann auch zu Fehlen im Script führen. Strings (Zeichenketten) müssen immer in ' oder " stehen! Man sollte sich lieber nicht darauf verlassen, daß PHP schon das richtige errät.

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Apr, 2005 09:57 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 04 Dez, 2004 02:34
Beiträge: 825
Danke Chaos :D
Aber mal genrerell nur nochmal sicherhalber zur Nachfrage es ist egal ob man ' oder " benutzt oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 03 Apr, 2005 10:21 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
Es gibt einen kleinen Unterschied. Innerhalb von "" werden zum einen Steuerzeichen umgesetzt (z.B. \n für eine neue Zeile), zum anderen werden darin Variablen geparst.
Beispiel (bei $var = 'Kekse'):
echo "Ich gehe $var kaufen"; ergibt "Ich gehe Kekse kaufen".
echo 'Ich gehe $var kaufen'; ergibt "Ich gehe $var kaufen".

Grundsätzlich sollte man '' (also die einfachen Anführungszeichen) bevorzugen, weil darin nichts geparst werden muß und daher die Ausführungszeit schneller ist. Allerdings wirst Du den Unterschied nicht so schnell merken, dafür braucht es schon einige Millionen Zeilen damit (und auch dann bewegt sich das irgendwo im Bereich um Zehntel- bis Hundertstelsekunden).

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 04 Apr, 2005 17:04 
Offline
Profi
Profi

Registriert: Fr 08 Okt, 2004 21:33
Beiträge: 120
Hab auch ne frage wenn ich den thread hier mal nützen kann

kannst du mir den unterschiede zwischen
[php]$session[user][gem][/php]
und
[php]$session['user']['gem'][/php]
erklären.
Das beides funktioniert weiß ich hab aber gesehen das in den Scripten einer das erste verwendet und ein anderer das zweite.
Was ist besser? oder ist es abhängig von dem was ich Code?

_________________
Mein LoGD


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 04 Apr, 2005 18:04 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
das zweite ist vom code her sauberer :!:

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 04 Apr, 2005 18:16 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1604
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
Meteora hat geschrieben:
das zweite ist vom code her sauberer :!:

Jup, das zweite ist sauberer. Spätestens bei $item[class] und $item['class'] wird dir sehr schnell klar, warum. Gewöhn dir lieber an, in Hochkommas zu schreiben, auch wenn das andere noch so bequem ist. Einmal nicht drauf geachtet und du suchst ewig nach dem Fehler, wenn du zufällig ein reserviertes Wort (wie class) in die Klammern geschrieben hast...

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 04 Apr, 2005 18:39 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
Um noch einen nachzulegen: :D
Wenn Du die ' nicht benutzt, schmeißt PHP jedesmal einen Fehler (E_NOTICE), der allerdings in LoGD unterdrückt wird. Wenn Du Pech hast, geht der Code in irgendeiner späteren PHP-Version auf einmal nicht mehr, weil eine Konstante mit dem Namen eingeführt wurde.
Wenn natürlich der von Anpera erwähnte Fall eintritt, läufts in der Tat gar nicht mehr.

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 05 Apr, 2005 16:58 
Offline
Profi
Profi

Registriert: Fr 08 Okt, 2004 21:33
Beiträge: 120
Jupp ich hab soweit ich weiß bis jetzt immer die ' benutzt. Es ist mir nur aufgefallen das viele sachen die ich so gefunden hab aber auch sachen von hier eben ohne ' geschrieben würden. Deshalb kamm mir die frage mit dem Unterschied.

Als Danke für die gute erklärung ... ich mach mich dann mal alle PHP´s zu prüfen und ggf. "Säubern" :D

_________________
Mein LoGD


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 44 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:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum