return mit "?"

okay und kann mir auch noch einer kurz erklären, auf was sich die eigenschaft "typisiert" bezieht und was genau das ist und wozu brauche ich den Vergleich "identisch" und "gleich" ?
 
Abgesehen davon, dass ich keine Datentyp Erklärung brauche und nichts davon drin steht, was "stark typisiert heißt" habe ich eine Vermutung!
Da PHP nur Interger hat wird wohl stark typisiert bedeuten, dass es eventuell noch longinteger, tinyinteger oder ähnliche typen geben könnt... right?

Aber wozu ich genau so ein Vergleich brauche findet isch da auch nicht, da ja PHP dafür nicht vorgesehen scheint :)
 
Original geschrieben von Razorhawk
Abgesehen davon, dass ich keine Datentyp Erklärung brauche und nichts davon drin steht, was "stark typisiert heißt" habe ich eine Vermutung!
Da PHP nur Interger hat wird wohl stark typisiert bedeuten, dass es eventuell noch longinteger, tinyinteger oder ähnliche typen geben könnt... right?

Aber wozu ich genau so ein Vergleich brauche findet isch da auch nicht, da ja PHP dafür nicht vorgesehen scheint :)

Stark typisiert heisst u.a das der Compiler Konversationen von Longs in z.b Integer explizit durchgefuehrt werden soll.

Sprich
long a = "30";
int b = a;

laesst der Compiler nicht zu, weil er nicht garantieren kann das ein Long in einen Integer "passt";
Bei einer schwachtypisierenden Sprache funktioniert das weil PHP Interpreter b intern dann ebenso als long behandelt.

So get in PHP auch sowas:
double b = "3.4"
int c = b;

Weil letztendlich c in einen double umgewandelt wird. Das hat den Vorteil einfacherer Programmierung, aber es ist bei Programmen die geschwindigkeitsoptimiert sein sollen ein grosser nachteil.
Das hat einfach mit dem verschiedenen Speicheranforderrung der Typen zu tun.

im übrigen:
int a = 3;
double b = a;

funktioniert auch in allen stark typisierenden Sprachen.
 
das letzte ist mir klar, da double ja ein übergeordneter Datentyp ist.

So wie Reelle Zahlen in die Complexen reingehören, aber niemals umgekehrt!
 
Original geschrieben von Razorhawk
das letzte ist mir klar, da double ja ein übergeordneter Datentyp ist.

So wie Reelle Zahlen in die Complexen reingehören, aber niemals umgekehrt!

Haargenau.

So ist follgendes in einer stark typsierenden Sprache (Java zb.) gut:

int a = 3;
long b = (long) a;

Muss aber im umgekehrten Fall explizit konvertiert werden.

long b = 339;
int a = new Long(b).intValue();
 
Zurück