anpera.net
https://anpera.homeip.net/phpbb3/

Warum geht die function net?
https://anpera.homeip.net/phpbb3/viewtopic.php?f=25&t=1211
Seite 1 von 1

Autor:  Devilzimti [ Sa 02 Apr, 2005 20:38 ]
Betreff des Beitrags:  Warum geht die function net?

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..

Autor:  Kevz [ Sa 02 Apr, 2005 20:46 ]
Betreff des Beitrags: 

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.

Autor:  Devilzimti [ Sa 02 Apr, 2005 20:59 ]
Betreff des Beitrags: 

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 :)

Autor:  Kevz [ Sa 02 Apr, 2005 21:06 ]
Betreff des Beitrags: 

Devilzimti hat geschrieben:
noch was aus Devilolien :baeh:

wie darf ich das verstehn? :pein:

Autor:  Gast [ Sa 02 Apr, 2005 22:41 ]
Betreff des Beitrags:  Re: Warum geht die function net?

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);

Autor:  Devilzimti [ Sa 02 Apr, 2005 23:00 ]
Betreff des Beitrags: 

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 :)

Autor:  Kevz [ Sa 02 Apr, 2005 23:06 ]
Betreff des Beitrags:  Re: Warum geht die function net?

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^^

Autor:  Chaosmaker [ So 03 Apr, 2005 02:04 ]
Betreff des Beitrags: 

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.

Autor:  Devilzimti [ So 03 Apr, 2005 09:57 ]
Betreff des Beitrags: 

Danke Chaos :D
Aber mal genrerell nur nochmal sicherhalber zur Nachfrage es ist egal ob man ' oder " benutzt oder?

Autor:  Chaosmaker [ So 03 Apr, 2005 10:21 ]
Betreff des Beitrags: 

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).

Autor:  Tiger313 [ Mo 04 Apr, 2005 17:04 ]
Betreff des Beitrags: 

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?

Autor:  Meteora [ Mo 04 Apr, 2005 18:04 ]
Betreff des Beitrags: 

das zweite ist vom code her sauberer :!:

Autor:  anpera [ Mo 04 Apr, 2005 18:16 ]
Betreff des Beitrags: 

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...

Autor:  Chaosmaker [ Mo 04 Apr, 2005 18:39 ]
Betreff des Beitrags: 

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.

Autor:  Tiger313 [ Di 05 Apr, 2005 16:58 ]
Betreff des Beitrags: 

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

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/