4.2. Simple datatyper

PHP har de velkendte variabel typer af heltal, floating point tal, og strenge. Variabler deklereres ikke på forhånd som i C. Men defineres ved at tilskrive variablen en værdi. Som i Perl starter alle typer af variabler med dollartegn, men til forskel fra Perl bruges at og procent tegnene ('@' og '%') ikke til mærke variable, der er tabeller eller associative tabeller. Følgende eksempel demonstrere hvordan variable oprettes og siden udskrives.


<pre>
<?php
# Opret variabel
  $a= 42;    # et heltal
  $b= 43.0;  # et floating point tal
  $c= "44";  # en streng

# Udskriv
  echo "\$a=$a, \$b=$b og \$c=$c \n";

# Udregninger
  $d=$a+$b;
  $e=$a+$c;

# Udskriv resultat
  echo "\$d=$d og \$e=$e \n";
?>
</pre>

Udskriver:
$a=42, $b=43 og $c=44 
$d=85 og $e=86

Som i Perl bliver værdien af variabler indsat automatisk når udskrives med som echo "$a", mens echo '$a' bare ville udskrive $a (variabel interpolation). Som i Perl betyder koden "\n" linjeskift. Bemærk at output jo vises af browseren, og browseren ignorere linjeskift med mindre teksten vises som preformateret. Dette er grunden til at PHP scriptet er foldet ind i <pre>..</pre> tags, som vist i eksemplet.

Eksemplet viser også at det er muligt at tage summen af et tal og en streng for eksempel: 42+"44" og resultatet er 86. I artitmetiske operationer, der involvere strenge, vil strengen automatisk konverteres til en heltal eller reelt tal (se man strtod for konverteringen).

Følgende eksempel viser nogle grundlæggende operationer på strenge.


<pre>
<?php
   $a="Tux Penguin\n";
   
   print "Streng: $a";
   print "Længde:". strlen($a) ."\n";
   print "Tegn på tredie position: $a[2]\n";

#konkatenering:
   $b  = "Første linje\n";
   $b .= "Anden Linje\n";

   print $b;

#lange strenge med doc operatoren

   $c= <<<EOT
Lange strenge der fylder flere
linjer, skrives bedst ved at bruge
doc (<<<) operatoren.
EOT;

   echo $c;
?>
</pre>

Udskriver:
Streng: Tux Penguin
Længde:12
Tegn på tredie position: x

Første linje
Anden Linje

Lange strenge der fylder flere
linjer, skrives bedst ved at bruge
doc (<<<) operatoren.

Som i Perl konkateneres strenge ved at bruge punktum. Strenge i PHP opfører sig som en tabel, og man kan derfor ekstrahere enkelt tegn med $a[position] hvor position går fra 0 til strenglængde-1, strenge slutter med 0. Dette er årsagen til at længden 12 er et tegn længere end strengen, der er vist i eksemplet. Eksemplet demonstrerer også hvordan man kan skrive strenge, der fylder flere linjer med <<< operatoren. Bemærk at det er vigtigt at der ikke står nogen mellemrum før slut mærkatet (her EOT).