Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] explizite Typenumwandlung (https://www.delphipraxis.net/67258-%5Bphp%5D-explizite-typenumwandlung.html)

mr47 11. Apr 2006 23:41


[PHP] explizite Typenumwandlung
 
Hi!

Mein Gott ich müll euch noch zu mit meinen PHP-Fragen *duck*

Wenn ich
Code:
$b = 123;
$a = (string)$b;
Ist a danach ein String und b? Ist es ein Integer oder ein String? Wird es umgewandelt oder nur der Wert ausgegeben?

Und bei
Code:
$b = 123;
$c = 312;
$a = (string)($b+$c);
Was sind b und c für Typen?

Danke vielmals

mr47

Matze 11. Apr 2006 23:44

Re: [PHP] explizite Typenumwandlung
 
Hi,

sorry für meine Antwort, aber da kannst du selbst drauf kommen. ;)

Code:
if (is_integer($var))
{
  echo $var . ' ist ein Integer';
}
elsif (is_string($var))
{
  echo $var . ' ist ein String';
}
Also das müsste theoretisch so gehen.

mr47 11. Apr 2006 23:54

Re: [PHP] explizite Typenumwandlung
 
Ja danke!

alcaeus 12. Apr 2006 00:03

Re: [PHP] explizite Typenumwandlung
 
Code:
$b = 123;
$a = (string)$b;
Nun ueberlege mal: du weisst $a $b als String zu, was koennte b nachher wohl sein?
Ich geb dir mal einen Tipp:
Delphi-Quellcode:
b := 123;
a := IntToStr(b);
Und, kommt jetzt die Erleuchtung?

Und wenns noch hapert, dann empfehle ich dir var_dump() ;)

Greetz
alcaeus

mkinzler 12. Apr 2006 05:47

Re: [PHP] explizite Typenumwandlung
 
Code:
$b = 123;
$a = "$b";
Bewirkt übrigens das selbe. In PHP brauchst du dir ine den meißten Fällen keine Gedanken über den Typ machen, den der Interpreter ist sehr gutmütig. Er wandelt im Normalfall selbsstaändig, z.B.
Code:
$a = "#".$b;
bewirkt das $b zu einem String konvertiert und an a angehängt wird.

alcaeus 12. Apr 2006 09:39

Re: [PHP] explizite Typenumwandlung
 
Zitat:

Zitat von mkinzler
Bewirkt übrigens das selbe. In PHP brauchst du dir ine den meißten Fällen keine Gedanken über den Typ machen, den der Interpreter ist sehr gutmütig.

Das ist nicht gutmuetig, sondern "nicht typesafe", und genau das ist eines der Probleme von PHP. Du weisst schon, dass das hier true ergibt:
Code:
$a = 123;
$b = '123';
$c = ($a == b);
Oder dass das ebenfalls true ergibt:
Code:
$a = 0;
$b = ($a == '')
ich koennte damit noch 2 Stunden weitermachen; das Beste ist wirklich, die Typen explizit zuzuweisen.

Greetz
alcaeus

mr47 12. Apr 2006 13:14

Re: [PHP] explizite Typenumwandlung
 
Zitat:

Zitat von alcaeus
Code:
$b = 123;
$a = (string)$b;
Nun ueberlege mal: du weisst $a $b als String zu, was koennte b nachher wohl sein?
Ich geb dir mal einen Tipp:
Delphi-Quellcode:
b := 123;
a := IntToStr(b);
Und, kommt jetzt die Erleuchtung?

Und wenns noch hapert, dann empfehle ich dir var_dump() ;)

Greetz
alcaeus

Naja b ist danach immer noch ein Integer, weil
Code:
$a = (string)$b;
$b nur als String ausgibt.
Also kann bei Typenumwandlungen auch immer nur die linke Seite vom = verändert werden, also hier $a, oder?

mr47 :hi:

Dax 12. Apr 2006 13:37

Re: [PHP] explizite Typenumwandlung
 
Zitat:

Zitat von alcaeus
[Das ist nicht gutmuetig, sondern "nicht typesafe", und genau das ist eines der Probleme von PHP. Du weisst schon, dass das hier true ergibt:
Code:
$a = 123;
$b = '123';
$c = ($a == b);
Oder dass das ebenfalls true ergibt:
Code:
$a = 0;
$b = ($a == '')

Für sowas gibts ja nicht umsonst den ===-Operator, der auch noch Typgleichheit prüft :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz