<html>
<title>Konstanten, Datentyp implizit und explizit festlegen, Datentyp abfragen  </title> 
<head>
</head>
<body>
<?
   function verknuepfungen()
   {
      // Diese Variablen sind nur in der Funktion bekannt
      $nummer=1;
      $zeichen="1"; // String, �quivalent zu :  $zeichen='1'; 
      $ergebnis=0;  // Initialisierung der Variablen

      echo('$nummer hat den Zahlenwert: '.$nummer."<br>");
      echo('$zeichen hat den Zeichenwert: '.$zeichen."<br>");

      $ergebnis = $nummer + $nummer; 
      echo('$ergebnis( = $nummer + $nummer) hat den Wert: '.$ergebnis."<br>");

      $ergebnis = $zeichen + $zeichen; // implizite Typumwandlung von Zeichen(kette) zu Zahl
      echo('$ergebnis( = $zeichen + $zeichen) hat den Wert: '.$ergebnis."<br>");

      $ergebnis = $nummer + $zeichen; 
      echo('$ergebnis( = $nummer + $zeichen) hat den Wert: '.$ergebnis."<br>");

      $ergebnis = $nummer.$nummer;     // implizite Typumwandlung von Zahl zu Zeichen(kette)
      echo('$ergebnis( = $nummer.$nummer) hat den Wert: '.$ergebnis."<br>");

      $ergebnis = $zeichen.$zeichen; 
      echo('$ergebnis( = $zeichen.$zeichen) hat den Wert: '.$ergebnis."<br>");
   }

   function typfestlegung()
   {
      // Festlegung des Datentypes bei der Definition der Variablen
      $a=(double)123;          // 123       --> 123.00...      
      $b=(string)123;          // 123       --> "123"      
      $c=(integer)1.23;        // 1.23      --> 1      
      $d=(string)1.77;         // 1.77      --> "1.77"      
      $e=(integer)"12e-3 abc"; // "12e-3 abc" --> 12      
      $f=(double)"12e-3 abc";  // "12e-3 abc" --> 0.012 

      echo('Datentyp der Variablen $a: '.gettype($a)." mit Wert: $a<br>");
      echo('Datentyp der Variablen $b: '.gettype($b)." mit Wert: $b<br>");
      echo('Datentyp der Variablen $c: '.gettype($c)." mit Wert: $c<br>");
      echo('Datentyp der Variablen $d: '.gettype($d)." mit Wert: $d<br>");
      echo('Datentyp der Variablen $e: '.gettype($e)." mit Wert: $e<br>");
      echo('Datentyp der Variablen $f: '.gettype($f)." mit Wert: $f<br>");

      // Festlegung des Datentypes bei einer Zuweisung
      // implizite Typeumwandlung von String zu Zahlenwert
      $g=$d+$d;
      echo('Datentyp der Variablen $g: '.gettype($g)." mit Wert: $g<br>");
   
      // explizite Typumwandlung von String zu ganze Zahl
      // Fehler durch den Programmierer: Kommawerter werden abgeschnitten
      $g=intval($d)+intval($d); 
      echo('Datentyp der Variablen $g: '.gettype($g)." mit Wert: $g<br>");

      // explizite Typumwandlung von String zu Kommazahl
      $g=doubleval($d)+doubleval($d);
      echo('Datentyp der Variablen $g: '.gettype($g)." mit Wert: $g<br>");

      // explizite Typumwandlung von Zahl zu String
      $g=strval($f).strval($f);
      echo('Datentyp der Variablen $g: '.gettype($g)." mit Wert: $g<br>");

      // �nderung des Datentypes einer Variablen mit der Funktion settype()
      $g=123.45;
      echo('Datentyp der Variablen $g: '.gettype($g)." mit Wert: $g<br>");
      settype($g,"integer");  
      echo('Datentyp der Variablen $g: '.gettype($g)." mit Wert: $g<br>");
   }

   //Konstante pi definieren
   define("pi",3.141592);
   echo("Die Konstante pi hat den Wert: ".pi."<br>");
   
   //Variable $pi definieren
   $pi=3.141592;
   $pi=$pi+100;
   echo('Die Variable $pi hat den Wert: '.$pi."<br>");

   verknuepfungen();
   typfestlegung();

?>

</body>
</html>