Anasayfa / PHP / PHP Veri Tipleri Nelerdir?

PHP Veri Tipleri Nelerdir?

Web geliştirme serüvenimizde PHP’nin temellerini atmaya devam ediyoruz. Bir önceki yazımızda PHP değişkenlerinin (variables) ne olduğunu ve verileri saklamak için nasıl sanal kutular olarak kullanıldıklarını öğrenmiştik. Ancak bu kutuların içine koyduğumuz veriler her zaman aynı yapıda değildir. Kimi zaman bir metin, kimi zaman bir sayı, kimi zaman ise çok daha karmaşık listeler saklamamız gerekir.

İşte programlama dillerinde, saklanan bu verilerin biçimini ve niteliğini belirleyen kavrama Veri Tipleri (Data Types) denir. PHP’de hangi verinin hangi tipe ait olduğunu bilmek, kodunuzun hatasız çalışması ve belleğin doğru yönetilmesi açısından hayati bir öneme sahiptir. Bu makalede PHP veri tiplerini bol örnekler ve günlük hayattan analojilerle inceleyeceğiz.

PHP’nin Veri Tipi Yaklaşımı: Dinamik Tür Belirleme (Type Juggling)

C veya Java gibi “katı” (strongly typed) programlama dillerinde, bir değişken oluştururken o değişkenin hangi türde veri tutacağını baştan belirtmeniz zorunludur. Ancak PHP oldukça esnek ve geliştirici dostu bir dildir. PHP’de değişkenlere başlangıçta bir tür ataması yapmanız gerekmez; değişkenin türü, ona atanan değere göre otomatik olarak belirlenir.

Örneğin, bir değişkene metin atarsanız PHP onun türünü anında “String” yapar. Eğer daha sonra aynı kod içinde o değişkene bir tam sayı atarsanız, PHP arka planda sessizce değişkenin türünü “Integer” olarak değiştirir. Bu özelliğe dinamik tür belirleme (type juggling) adı verilir ve geliştirme sürecini inanılmaz derecede hızlandırır.

Şimdi PHP’de bulunan temel veri tiplerini detaylıca inceleyelim:

1. Skaler (Tekil) Veri Tipleri

Skaler veri tipleri, içerisinde sadece tek bir değer barındırabilen en temel veri türleridir.

A. String (Metin)

String, metin, kelime veya karakter dizilerini ifade eden veri türüdür. Bir kişinin adı, adresi, bir blog yazısının içeriği veya bir şifre her zaman String olarak saklanır. String veriler PHP’de tanımlanırken her zaman tek tırnak (‘ ‘) veya çift tırnak (” “) işareti içine yazılmak zorundadır.

<?php
$isim = 'Duru'; // Tek tırnak ile string tanımlama
$selamlama = "Merhaba, nasılsınız?"; // Çift tırnak ile string tanımlama
$yil = "2026"; // Rakamlardan oluşsa bile tırnak içinde olduğu için bu bir String'dir!
?>

SEO İpucu: Çift tırnak kullandığınızda, metnin içerisine başka bir değişkeni doğrudan yerleştirebilirsiniz. Tek tırnak ise bu değişkeni metinmiş gibi algılar, işlem yapmaz.

B. Integer (Tam Sayı)

Ondalıklı kısmı bulunmayan, negatif veya pozitif tam sayıları saklamak için kullanılan veri türüdür. Sitedeki toplam üye sayısı, kullanıcının yaşı veya bir ürünün stok adedi gibi veriler için idealdir. Integer veriler yazılırken tırnak işareti kullanılmaz.

<?php
$yas = 21;
$sicaklik = -10;
$stok_miktari = 0;
?>

İleri seviye bir bilgi olarak; PHP sadece standart onluk (decimal) sayı sistemini değil; sekizlik (octal), onaltılık (hexadecimal) ve bilimsel gösterimleri de destekler. Örneğin, $renk = 0x5dc; onaltılık bir integer değeridir.

C. Float veya Double (Ondalıklı Sayı)

Float veya Double, kesirli yani ondalıklı sayıları saklamak için kullanılır. E-ticaret sitelerindeki ürün fiyatları, öğrenci not ortalamaları veya ölçü/tartı değerleri gibi hassas sayılar bu türe aittir. PHP’de ondalıklı sayıları belirtirken Türkçedeki gibi virgül (,) değil, evrensel standart olan nokta (.) kullanılmalıdır.

<?php
$fiyat = 10.99;
$pi_sayisi = 3.14159;
$ortalama = 3.14;
?>

D. Boolean (Mantıksal)

Boolean, programlama dünyasının en basit ama en güçlü veri türüdür. Tıpkı bir elektrik anahtarı gibi sadece iki değerden birini alır: Açık/Kapalı veya Evet/Hayır. PHP’de bu değerler TRUE (Doğru / 1) veya FALSE (Yanlış / 0) olarak ifade edilir. Genellikle if-else gibi koşullu karar yapılarında kullanıcının sisteme giriş yapıp yapmadığını veya bir işlemin başarılı olup olmadığını kontrol etmek için kullanılır.

<?php
$girisYaptiMi = TRUE; // Kullanıcı giriş yaptı (1)
$adminMi = FALSE;     // Kullanıcı yönetici değil (0)
?>

2. Bileşik (Compound) Veri Tipleri

Bileşik veri tipleri, içerisinde birden fazla değer veya yapı barındırabilen gelişmiş veri türleridir.

A. Array (Dizi)

Bir dizi şeyi bir arada tutmanıza olanak tanıyan yapıdır. Gerçek hayatta cebinizdeki alışveriş listesi neyse, PHP’de Array odur. Sınıftaki arkadaşlarınızın isimlerini veya bir alışveriş sepetindeki tüm ürünleri tek tek ayrı değişkenlerde ($urun1, $urun2) tutmak yerine, hepsini tek bir liste (Array) içinde sırayla tutabilirsiniz.

<?php
// Klasik yöntemle dizi oluşturma
$meyveler = array("Azra", "Defne", "Giray");

// Modern ve kısa yöntemle dizi oluşturma (PHP 5.4 ve sonrası)
$sebzeler = ["Patates", "Havuç", "Soğan"];
?>

Diziler çok boyutlu olabilir; yani bir dizinin içindeki bir eleman, başka bir dizi olabilir. PHP’de dizi (array) yönetimi çok geniş bir konudur ve ilerleyen derslerimizde özel olarak işlenecektir.

B. Object (Nesne)

Nesne yönelimli programlamanın (OOP) kalbi olan Object türü, daha karmaşık bilgileri yapısal olarak saklamak için kullanılır. Bir nesne, kendi içinde özellikler (değişkenler) ve yöntemler (fonksiyonlar) barındırır.

Bunu gerçek hayattan bir örnekle açıklayalım: Bir “Araba” düşünün. Arabanın rengi, modeli ve markası onun özellikleridir; motoru çalıştırmak veya fren yapmak ise onun yöntemleridir. Object veri türü sayesinde gerçek hayattaki kavramları koda dökebiliriz.

<?php
class Araba {
    public $renk;
    public $model;

    public function __construct($model, $renk) {
        $this->model = $model;
        $this->renk = $renk;
    }

    public function detaylar() {
        return "Bu bir " . $this->renk . " renkli " . $this->model . ".";
    }
}

// 'Araba' sınıfından yeni bir nesne (Object) üretiyoruz
$arabam = new Araba("Toyota", "Kırmızı");
echo $arabam->detaylar();
?>

3. Özel Veri Tipleri

Bu veri türleri skaler veya bileşik kategorisine tam uymayan özel işlevlere sahiptir.

A. NULL (Boş Değer)

NULL, hiçbir şeyi ifade etmeyen, tamamen boş bir kutuyu temsil eder. Bir değişkenin değerinin kasıtlı olarak silinmesi veya henüz hiçbir veri atanmamış olması durumunda kullanılır.

Önemli Bir Fark: Bir değişkene "" (boş bir metin) atamak ile NULL atamak aynı şey değildir. Boş metin, kutunun içinde hava (görünmez bir karakter) olması gibidir, kutu boş değildir. NULL ise o kutunun fiziksel olarak içindeki her şeyin boşaltılıp vakumlanmasıdır!

<?php
$butce = NULL;
// Not: PHP'de büyük/küçük harf duyarlılığı yoktur, Null veya null olarak da yazılabilir.
?>

B. Resource (Kaynak)

Bir veritabanına bağlanıldığında, bir dosya açıldığında veya bir resim dosyası işlenirken PHP dışındaki harici bir kaynağa referans tutan özel bir veri türüdür. Genellikle arka planda çalıştığı için başlangıç seviyesinde üzerine çok düşünmenize gerek yoktur.

Veri Tiplerini Nasıl Öğrenebilir ve Dönüştürebiliriz?

Kodlama esnasında bazen elimizdeki değişkenin hangi tipte olduğunu merak ederiz veya türünü zorla değiştirmek (Type Casting) isteriz.

Tür Öğrenme: Bir değişkenin türünü öğrenmek ve içindeki detayları röntgen cihazından geçiriyormuş gibi analiz etmek için var_dump() fonksiyonu çok sık kullanılır. Bu fonksiyon hem türü hem değeri ekrana basar. Sadece tür adını almak isterseniz gettype() fonksiyonunu kullanabilirsiniz.

<?php
$yas = 25;
echo gettype($yas); // Çıktı: integer

$isim = 'Fiona';
var_dump($isim); // Çıktı: string(5) "Fiona"
?>

Tür Dönüştürme (Type Casting): Kullanıcıdan gelen bir form verisi her zaman String (metin) olarak gelir. Biz bu metni matematiksel bir işlemde kullanmak için zorla Integer’a (tam sayı) dönüştürmek isteyebiliriz.

<?php
$hiz_metni = "500"; // Şu an bu bir String
$gercek_hiz = (integer) $hiz_metni; // Zorla (cast) Integer'a çevirdik
?>

Sonuç

PHP’de veri tiplerini anlamak, iyi ve güvenli bir programcı olmanın ilk şartıdır. String’ler ile kullanıcıya gösterilecek metinleri harmanlamayı, Integer ve Float’lar ile fiyat veya yaş gibi değerleri hesaplamayı, Boolean ile mantıksal kararlar almayı ve Array ile uzun listeleri tek elde yönetmeyi öğrendiniz. Dinamik tür belirleme (Type Juggling) sayesinde PHP bu süreci sizin için kolaylaştırsa da, kontrolü elden bırakmamak her zaman en iyi yoldur. Bir sonraki aşamada PHP ile karar yapılarına (if-else) girerek kodlarımıza gerçek bir zekâ katmaya başlayacağız!

Etiketlendi:

Cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir