PHP/Tür dönüşümü

Vikikitap, özgür kütüphane
< PHP

Tür dönüşümü[değiştir]

Tür çarpıtma, bir değişkenin türünün başka bir türe dönüştürülmesi işlemidir.

<?php
$sayi = 7.5; // float
$sayi = (int) $sayi; // şimdi integer ve değeri 7 oldu
?>

Tür çarpıtma işlemi için parantez içinde hedef tür ve çarpıtma işlemine sokulacak değişken yazılır. Yukarıdaki kod parçasının 3. satırında, türü float olan $sayi değişkeni tür çarpıtma işlemine tabi tutulmuş ve hedef tür olarak int (integer, tamsayı) belirtilmiştir.

Yapılacabilecek çarpıtmalar:

  • (int), (integer) Hedef tür: Tamsayı
  • (string) Hedef tür: String
  • (bool), (boolean) Hedef tür: Boolean
  • (float), (double), (real) Hedef tür: Float
  • (array) Hedef tür: Array
  • (object) Hedef tür: Object
  • (unset) Hedef tür: NULL

boolean türe dönüşüm[değiştir]

Aşağıdakiler, boolean türe dönüşümde false olarak ele alınır.

  • Boş string veya değeri 0 (sıfır) olan string
  • integer 0 (sıfır)
  • float 0.0 (sıfır)
  • null (yokluk)
  • Boş array (dizi)
  • Üyesiz object (nesne)
<?php
$deger = (bool) "PHP"; // true
$deger = (bool) 0; // false
$deger = (bool) 757.45; // true
$deger = (bool) "0.0" // true
$deger = (bool) ""; // false
$deger = (bool) array(); // false
$deger = (bool) NULL; // false
$deger = (bool) 5; // true
?>

(bool) çarpıtması yerine (boolean) da kullanılabilir.

string türe dönüşüm[değiştir]

string türe dönüşümlerde boolean true "1" olarak, false ise boş karakter dizisi olarak dönüşür. Aynı şekilde null da boş karakter dizisi olarak dönüşür. Aşağıda string türe dönüşümle ilgili bazı örnekler verilmiştir.

<?php
$deger = (string) false; // $deger = ""
$deger = (string) 12; // $deger = "12"
$deger = (string) 9.71; // $deger = "9.71"
$deger = (string) 2.3E+6; // $deger = "2300000"
$deger = (string) true; // $deger = "1"
?>

String türe dönüşüm için izlenebilecek başka bir yol daha vardır:

<?php
$sayi = 3;
$deger = "$sayi";
?>

Yukarıda değeri 3 ve türü integer olan $sayi değişkeninin değeri, $deger değişkenine çift tırnak içerisinde atanmıştır. Bu durumda $deger değişkeninin türü string, değeri de "3" olmuştur.

string ifadelerin sayıya dönüşümü[değiştir]

Karakter dizisi nokta veya küçük ya da büyük e harfi içermiyorsa ve tamsayı genişliğini aşmıyorsa integer türe, aksi durumda float türe dönüşür. Aşağıda bazı örnekler verilmiştir.

<?php
$deger = 4 + "8"; // integer 12
$deger = 5 + "PHP"; // integer 5
$deger = 4 + "1 düzine"; // integer 5
$deger = 1 + "12.8"; // float 13.8
$deger = 1 + "4.2e8"; // float 420000001
?>shht

zg
zg
fgz

integer türe dönüşüm[değiştir]

  • Mantıksal true 1'e, false 0'a dönüşür.
  • Float türünden dönüşümlerde aşağı yuvarlama yapılır ve tamsayı kısım alınır.
<?php
$sayi = (int) 10.3; // integer 10
$sayi = (int) false; // integer 0
?>

gettype() işlevi[değiştir]

gettype() işlevi, bir ifade ya da değişkenin türünü döndürür. Dönebilecek değerler:

  • integer
  • boolean
  • double (aslında float)
  • string
  • array (eğer bir "dizi" ise)
  • object (eğer "sınıf" nesnesi ise)
  • NULL (eğer tanımsız ise)
<?php
$a = 12;
echo gettype($a); // integer çıktılar
echo gettype(true); // boolean çıktılar
echo gettype(12.8); // double çıktılar (float)
$b = "PHP";
echo gettype($b); // string çıktılar
echo gettype(array(1, 2)); // array çıktılar
echo gettype($c); // NULL çıktılar. $c tanımsızdır. aynı zamanda bir uyarı çıktılanır
?>

settype() işlevi[değiştir]

Bir değişkenin türünü belirlemeyi sağlar. Geçerli ise true, geçersiz ise false değer döndürür. Parametre olarak, türü değişecek değişkeni ve tür ismini alır. Parametre olarak alabileceği tür değerleri şunlardır:

  • integer veya int
  • boolean veya bool
  • float
  • string
  • array
  • object
  • null
<?php
$a = "1 değer";
settype($a, "integer");
var_dump($a); // int(1) çıktılar
settype($a, "bool");
var_dump($a); // bool(true) çıktılar
settype($a, "null");
var_dump($a); // NULL çıktılar. $a artık tanımsızdır
?>

Türlerle ilgili işlevler[değiştir]

is_string() işlevi[değiştir]

Bir değişkenin türünün string olup olmadığını kontrol eder. Mantıksal değer döndürür.

<?php
$a = "PHP";
var_dump(is_string($a)); // bool(true) çıktılar
var_dump(is_string(12)); // bool(false) çıktılar
?>

is_bool() işlevi[değiştir]

Bir değişkenin türünün boolean olup olmadığını denetler. Mantıksal bir değer döndürür.

<?php
$a = false;
var_dump(is_bool($a)); // bool(true) çıktılar
$a = "PHP";
var_dump(is_bool($a)); // bool(false) çıktılar
?>

is_int() işlevi[değiştir]

Değişkenin türünün integer olup olmadığına bakar. Mantıksal değer döndürür.

<?php
$a = 654;
var_dump(is_int($a)); // bool(true) çıktılar
$a = 654.7;
var_dump(is_int($a)); // bool(false) çıktılar
$a = 0x457; // onaltılık tabanda tamsayı
var_dump(is_int($a)); // bool(true) çıktılar
?>

is_float() işlevi[değiştir]

Değişkenin türünün float olup olmadığını sınar. Geriye mantıksal değer döndürür.

<?php
$a = 8.12;
var_dump(is_float($a)); // bool(true) çıktılar
$a = true;
var_dump(is_float($a)); // bool(false) çıktılar
var_dump(is_float(4e36)); // bool(true) çıktılar
?>

is_null() işlevi[değiştir]

Bir değişkenin NULL olup olmadığını kontrol eder ve mantıksal bir değer döndürür.

<?php
var_dump(is_null($a)); // bool(true) çıktılar. $a tanımsızdır
$b = "bir değer";
var_dump(is_null($b)); // bool(false) çıktılar
$b = NULL;
var_dump(is_null($b)); // bool(true) çıktılar
?>

is_numeric() işlevi[değiştir]

Bir ifade ya da değişkenin numerik olup olmadığını denetler ve mantıksal değer döndürür.

<?php
$a = 5;
var_dump(is_numeric($a)); // bool(true) çıktılar
var_dump(is_numeric(2.45)); // bool(true) çıktılar
$a = "4e3";
var_dump(is_numeric($a)); // bool(true) çıktılar çünkü 4e3 float bir değerdir
$a = "12";
var_dump(is_numeric($a)); // bool(true) çıktılar
$a = "12x";
var_dump(is_numeric($a)); // bool(false) çıktılar
?>

6 ve 8. satırlarda görüldüğü gibi sayıl değere sahip stringler de numerik kabul ediliyor.

is_array() işlevi[değiştir]

Değişken dizi mi diye bakar. Mantıksal değer döndürür.

<?php
$a = array(1, 3, 6, 12);
var_dump(is_array($a)); // bool(true) çıktılar
$array = "dizi";
var_dump(is_array($array)); // bool(false) çıktılar
?>

is_object() işlevi[değiştir]

Değişken object türünde mi diye bakar ve mantıksal değer döndürür.

<?php
class BirSinif
{
}
$obj = new BirSinif();
var_dump(is_object($obj)); // bool(true) çıktılar
$a = true;
var_dump(is_object($a)); // bool(false) çıktılar
$b = 45;
var_dump(is_object($b)); // bool(false) çıktılar
?>

intval() işlevi[değiştir]

Bir değişkene ait tamsayı değeri döndürür.

<?php
$a = 24.3;
var_dump(intval($a)); // int(24)
var_dump(intval(045)); // int(37)
var_dump(intval(0x32)); // int(50)
var_dump(intval("str")); // int(0)
var_dump(intval(-6)); // int(-6)
?>

floatval() işlevi[değiştir]

Bir değişkenin değerini float olarak döndürür.

<?php
var_dump(floatval("7.4")); // float(7.4)
var_dump(floatval(5)); // float(5.0)
?>

strval() işlevi[değiştir]

Bir değişkenin değerini string olarak döndürür.

<?php
$a = 454;
var_dump(strval($a)); // string(3) "454"
?>

empty() işlevi[değiştir]

Bir değişkenin boş olup olmadığına bakar.

<?php
$a = 0;
var_dump(empty($a)); // bool(true)
$b = "0";
var_dump(empty($b)); // bool(true)
$c = "PHP";
var_dump(empty($c)); // bool(false)
$d = 2.8;
var_dump(empty($d)); // bool(false)
?>

isset() işlevi[değiştir]

Bir değişkenin tanımlı olup olmadığını kontrol eder.

<?php
$a = 0;
var_dump(isset($a)); // bool(true)
var_dump(isset($b)); // bool(false)
$c = "";
var_dump(isset($c)); // bool(true)
?>

unset() işlevi[değiştir]

Bir değişkeni tanımsız kılar.

<?php
$a = "bir değer";
unset($a); // $a artık tanımsız NULL
?>