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

< 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
?>