php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 4 Stimmen, 5,00 durchschnittlich.
Alt 16.08.2009, 01:39  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

sorry, ich kann nur auf die pauke hauen, alles andere ist zu leicht

erkläre, warum folgendes script

PHP-Code:
$a=1$b=2
echo 
'Komma-',$a+$b,'-Komma'
echo 
'<br>'
echo 
'Punkt-'.$a+$b.'-Punkt'
echo 
'<br>'
echo 
'.'.$a+$b.'.'
echo 
'<br>'
echo 
'#'.$a+$b.'#'
diese ausgabe hat:

Zitat:
Komma-3-Komma
2-Punkt
2.1.
2#
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.08.2009, 02:22  
Erfahrener Benutzer
 
Benutzerbild von Mati_
 
Registriert seit: 27.06.2009
Beiträge: 107
PHP-Kenntnisse:
Fortgeschritten
Mati_ befindet sich auf einem aufstrebenden Ast
Mati_ eine Nachricht über ICQ schicken Mati_ eine Nachricht über MSN schicken
Standard

Bei den Stringverkettungen ist der Teil, in dem die beiden Variablen summiert werden sollen nicht gruppiert, weswegen nicht der Rückgabewert der Addition angehängt wird, sondern nur der Wert von $a. Der resultierende String wird konvertiert und mit $b summiert, und mit letzterem verkettet. Beim ersten echo ist die Gruppierung nicht nötig, da die Addition als Parameter übergeben wird.

Da bei Nr. 2 und Nr. 4 der entstandene String nicht in eine zugehörige Gleitkommazahl konvertiert werden kann wird dieser 0. Bei Nr. 3 wird ".1" in 0.1 umgewandelt, dann wie gewohnt mit 2 addiert (Ergebnis 2.1), und der . schließlich noch angehängt.

Geändert von Mati_ (16.08.2009 um 04:11 Uhr).
Mati_ ist offline   Mit Zitat antworten
Alt 16.08.2009, 09:37  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Mati_ Beitrag anzeigen
Bei den Stringverkettungen ist der Teil, in dem die beiden Variablen summiert werden sollen nicht gruppiert, weswegen nicht der Rückgabewert der Addition angehängt wird, sondern nur der Wert von $a. Der resultierende String wird konvertiert und mit $b summiert, und mit letzterem verkettet. Beim ersten echo ist die Gruppierung nicht nötig, da die Addition als Parameter übergeben wird.

Da bei Nr. 2 und Nr. 4 der entstandene String nicht in eine zugehörige Gleitkommazahl konvertiert werden kann wird dieser 0. Bei Nr. 3 wird ".1" in 0.1 umgewandelt, dann wie gewohnt mit 2 addiert (Ergebnis 2.1), und der . schließlich noch angehängt.
und jetzt noch ein warum.

tipp: die seite operatoren im manual oder eine deren unterseiten, sollte dir da weiterhelfen
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 16.08.2009, 19:18  
Erfahrener Benutzer
 
Benutzerbild von Mati_
 
Registriert seit: 27.06.2009
Beiträge: 107
PHP-Kenntnisse:
Fortgeschritten
Mati_ befindet sich auf einem aufstrebenden Ast
Mati_ eine Nachricht über ICQ schicken Mati_ eine Nachricht über MSN schicken
Standard

Aufgrund der Operator-Rangfolge. "." und "+" sind gleichwertig, also beginnt es mit dem am weitesten Links stehendem Operator.
Mati_ ist offline   Mit Zitat antworten
Alt 16.08.2009, 20:19  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Mati_ Beitrag anzeigen
Aufgrund der Operator-Rangfolge. "." und "+" sind gleichwertig, also beginnt es mit dem am weitesten Links stehendem Operator.
exakt, du bist.
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 16.08.2009, 23:09  
yab
Erfahrener Benutzer
 
Registriert seit: 05.04.2009
Beiträge: 291
PHP-Kenntnisse:
Anfänger
yab befindet sich auf einem aufstrebenden Ast
Standard

Das war ja langweilig prian - viel interessanter ist, warum PHP im folgenden Fall nicht "regelt"
PHP-Code:
if((string) '0XBAD' == (string) '2989')
{
 echo 
"PHP suckz";
}
else
{
 echo 
"PHP rulez";

yab ist offline   Mit Zitat antworten
Alt 16.08.2009, 23:21  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

was willst du mit dem (string)? das sind eh schon strings.
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline   Mit Zitat antworten
Alt 16.08.2009, 23:43  
Erfahrener Benutzer
 
Benutzerbild von Mati_
 
Registriert seit: 27.06.2009
Beiträge: 107
PHP-Kenntnisse:
Fortgeschritten
Mati_ befindet sich auf einem aufstrebenden Ast
Mati_ eine Nachricht über ICQ schicken Mati_ eine Nachricht über MSN schicken
Standard

Wiedermal eine Frage aus dem Bereich HTTP.

Welche Elemente sind im HTTP Respone-Header dafür ausschlaggebend, dass bei herkömmlichen Browsern ein Download-Dialog erscheint? Nenne zwei unterschiedliche Möglichkeiten.

@yab: Nicht schlecht . Echt Wahnsinn, wie PHP das handhabt.
@Freeaak: Naja, PHP typecasted Strings in Zusammenhang mit Operatoren wenn möglich in die entsprechende Gleitkommazahl, und dass scheinbar sogar wenn ein anderer Typ explizit angegeben ist.

Geändert von Mati_ (16.08.2009 um 23:55 Uhr).
Mati_ ist offline   Mit Zitat antworten
Alt 17.08.2009, 10:06  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Entweder per
Code:
Content-Disposition: attachment; filename=file.ext
oder per
Code:
Content-Type: application/force-download
wobei zweiteres keinen Dateinamen mit angibt. Dateigröße sollte man im Normalfall auch mitsenden
Flor1an ist offline   Mit Zitat antworten
Alt 17.08.2009, 10:39  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Mati_ Beitrag anzeigen
PHP typecasted Strings in Zusammenhang mit Operatoren
ich erkenne da keinen typecast. kannst du vll mal ein anderes beispiel zeigen?
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum