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

< PHP

Tür dönüşümüDüzenle

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üşümDüzenle

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üşümDüzenle

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üDüzenle

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üşümDüzenle

  • 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şleviDüzenle

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şleviDüzenle

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şlevlerDüzenle

is_string() işleviDüzenle

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şleviDüzenle

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şleviDüzenle

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şleviDüzenle

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şleviDüzenle

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şleviDüzenle

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şleviDüzenle

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şleviDüzenle

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şleviDüzenle

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şleviDüzenle

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şleviDüzenle

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

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

empty() işleviDüzenle

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şleviDüzenle

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şleviDüzenle

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

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