PHP/Tür dönüşümü
Tür dönüşümü
değiştirTü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ştirAş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ştirstring 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ştirKarakter 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ştirgettype() 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ştirBir 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ştiris_string() işlevi
değiştirBir 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ştirBir 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ştirDeğ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ştirDeğ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ştirBir 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ştirBir 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ştirDeğ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ştirDeğ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ştirBir 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ştirBir 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ştirBir 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ştirBir 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ştirBir 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ştirBir değişkeni tanımsız kılar.
<?php
$a = "bir değer";
unset($a); // $a artık tanımsız NULL
?>