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