Web geliştirme dünyasında PHP öğrenmeye başlarken karşınıza çıkacak ilk ve en temel kavramlardan biri “değişkenler” (variables) kavramıdır. Programlama mantığını anlamak için değişkenlerin nasıl çalıştığını kavramak hayati bir önem taşır. Bu rehberde, PHP’de değişkenlerin ne olduğunu, nasıl tanımlandığını ve hangi kurallara tabi olduğunu bol örneklerle, sıfırdan öğrenen birinin anlayacağı bir dilde inceleyeceğiz.
Değişken (Variable) Nedir?
Bir değişkeni, içine hem sayısal hem de sayısal olmayan farklı türde veriler koyabileceğiniz, gerektiğinde içindeki veriyi değiştirebileceğiniz veya tamamen boşaltabileceğiniz bir kutu veya konteyner olarak düşünebilirsiniz.
Gerçek hayatta bir depo düşünün. Aradığımız eşyaları kolayca bulabilmek için kutuların üzerine nasıl etiketler yapıştırıyorsak, programlama dünyasında da kodlarımızı daha düzenli ve anlaşılır kılmak için verileri sakladığımız bu sanal kutulara isimler veririz. Bizzat deneyimlemiş biri olarak söyleyebilirim ki; anlaşılır isimlendirilmemiş değişkenler, üzerinde “Çeşitli Eşyalar” yazan devasa bir kutuda annenizin en iyi porselen takımını eski bir oyuncak kemikle birlikte aramaya benzer!
PHP’de Değişken Tanımlama ve İsimlendirme Kuralları
PHP, bir değişken oluştururken belirli ve katı kurallara uymanızı bekler. Bu kuralları bilmek, kod yazarken karşılaşacağınız söz dizimi (syntax) hatalarının önüne geçer:
- Dolar İşareti Zorunluluğu: PHP’de her değişkenin adı mutlaka bir dolar işareti ($) ile başlamak zorundadır. Bu işaret, PHP motoruna o kelimenin bir değişken olduğunu ve içinde bir değer sakladığını bildirir.
- Başlangıç Karakteri: Dolar işaretinden hemen sonra gelen ilk karakter mutlaka bir harf (A-Z, a-z) veya alt çizgi (_) olmalıdır. Değişken isimleri asla bir rakam ile başlayamaz.
- İzin Verilen Karakterler: İlk karakterden sonra harfler, rakamlar (0-9) ve alt çizgiler kullanılabilir. Ancak değişken adları içinde boşluk, nokta, virgül veya yüzde (%) gibi özel karakterler ve noktalama işaretleri kullanılamaz.
- Büyük/Küçük Harf Duyarlılığı (Case-Sensitivity): PHP’de değişken isimleri büyük ve küçük harflere karşı duyarlıdır. Yani,
$yas,$Yasve$YAStamamen farklı üç değişkeni temsil eder. Yeni başlayan geliştiricilerin en sık yaşadığı hayal kırıklıklarından biri bu kuralı unutmaktır.
Örneklerle İsimlendirme:
- Geçerli:
$root,$_num,$query2,$kullaniciAdi. - Geçersiz:
$58%(rakamla başlıyor ve özel karakter var),$1day(rakamla başlıyor),$email adresi(boşluk içeriyor).
Değişkenlere Değer Atama ve Kullanma
PHP’de bir değişkene değer atamak son derece basittir. Bunun için eşittir (=) sembolü kullanılır. Bu sembol, programlamada atama operatörü olarak bilinir ve sağdaki değeri alıp soldaki değişkene aktarır.
<?php
// Bir değişkene metin atama
$isim = 'Simon';
// Bir değişkene sayı atama
$yil = 2026;
// Bir değişkeni başka bir değişkene atama
$guncelYil = $yil;
// Matematiksel bir işlemin sonucunu atama
$gecenYil = $guncelYil - 1;
// Ekrana yazdırma
echo "Hoş geldin, " . $isim . "! " . $gecenYil . " yılı sona erdi.";
?>
Yukarıdaki örnekte görüldüğü gibi, değişkenleri matematiksel işlemlerde kullanabilir ve sonuçları yine başka değişkenlere atayabiliriz.
Bazen çok nadir de olsa, bir değişkenin adını çalışma zamanında (dinamik olarak) belirlemeniz gerekebilir. PHP buna süslü parantezler kullanarak izin verir. Örneğin $attribute = 'fiyat'; dedikten sonra ${$attribute} = 678; yazarsanız, PHP arka planda otomatik olarak $fiyat = 678; şeklinde yeni bir değişken oluşturur.
PHP Veri Türleri (Data Types)
Değişkenlerin içlerinde sakladıkları değerler farklı türlerde olabilir. PHP, birçok temel veri türünü destekler:
- Boolean (Mantıksal): En basit veri türüdür. Sadece iki durumu ifade eder: Açık/Kapalı veya Doğru/Yanlış.
true(1) veyafalse(0) değerlerini alır. - Integer (Tam Sayı): Ondalıklı kısmı olmayan pozitif veya negatif tam sayılardır. Örneğin:
$boy = 180;veya$sicaklik = -10;. PHP ayrıca sekizlik (octal), onaltılık (hexadecimal) ve bilimsel gösterimle yazılmış sayıları da destekler. - Float / Double (Ondalıklı Sayı): Kesirli (ondalıklı) değerleri tutan sayılardır. Örneğin:
$fiyat = 10.99;. - String (Metin): Harfler, rakamlar ve özel sembollerden oluşan metin dizileridir. Tek tırnak (
') veya çift tırnak (") arasına yazılmaları zorunludur. - NULL (Boş Değer): İçinde hiçbir veri olmayan, tamamen boş bir değişkeni temsil eden özel bir veri türüdür. Dikkat: Bir değişkene boş metin
""atamak, o değişkenin türünü NULL yapmaz.
Dinamik Veri Türü Belirleme (Type Juggling)
C veya Java gibi dillerin aksine, PHP’de bir değişken oluştururken onun hangi veri türünde (örneğin tam sayı mı, metin mi?) olacağını önceden belirtmenize gerek yoktur. PHP bu konuda oldukça akıllıdır; atadığınız değere bakarak değişkenin türünü otomatik olarak algılar.
Daha da güzeli, eğer betiğin ilerleyen kısımlarında değişkene farklı türde bir veri atarsanız, PHP değişkenin türünü yeni veriye uygun olacak şekilde arka planda sessizce değiştirir.
<?php
// Başlangıçta bir string (metin) tanımlıyoruz
$kimimBen = 'Sarah';
echo gettype($kimimBen); // Çıktı: string
// Şimdi aynı değişkene ondalıklı sayı atıyoruz
$kimimBen = 99.8;
echo gettype($kimimBen); // Çıktı: double (float)
?>
Yukarıdaki örnekte görülen gettype() fonksiyonu, bir değişkenin o anki veri türünü öğrenmek için kullanabileceğiniz pratik bir araçtır. Ayrıca, bir değişkenin belirli bir türde olup olmadığını kontrol etmek için is_bool(), is_numeric(), is_int(), is_float(), is_string() ve is_null() gibi test fonksiyonları da mevcuttur.
Değişkenleri İnceleme ve Hafızadan Silme
Kod yazarken bazen bir değişkenin içinde tam olarak ne olduğunu detaylı bir şekilde görmek isteriz. Bu durumlarda imdadımıza var_dump() fonksiyonu yetişir. var_dump(), içine koyduğunuz değişkeni adeta bir röntgen cihazından geçirerek hem içindeki değeri hem de veri türünü size söyler. Bir tık daha sade bir bilgi almak isterseniz print_r() fonksiyonunu da kullanabilirsiniz.
Eğer bir değişkenle işiniz tamamen bittiyse ve sistem hafızasında (RAM) yer kaplamasını istemiyorsanız, unset() fonksiyonunu kullanarak değişkeni yok edebilirsiniz. unset() uygulandıktan sonra o değişkeni tekrar ekrana yazdırmaya çalışırsanız, PHP size bir “undefined variable” (tanımlanmayan değişken) hatası verecektir.
Değişken Kapsamı (Variable Scope) – Yerel ve Küresel
Değişkenlerle çalışırken bilinmesi gereken bir diğer önemli konu “kapsam”dır (scope). Varsayılan olarak, kendi oluşturduğunuz bir fonksiyonun içerisinde tanımladığınız değişkenler yereldir (local). Yani, sadece o fonksiyonun sınırları içerisinde yaşarlar ve fonksiyonun dışından (ana programdan) erişilemez veya değiştirilemezler.
Eğer bir fonksiyonun içinden, ana programdaki bir değişkene müdahale etmek isterseniz, değişkenin kapsamını genişletmek için global anahtar kelimesini kullanmanız gerekir.
Değişkenler (Variables) vs. Sabitler (Constants)
Bazen program boyunca değeri hiç değişmeyecek olan verilere ihtiyaç duyarız (örneğin veritabanı şifresi, pi sayısı, KDV oranı vb.). Değişmesi muhtemel olan veriler için değişkenleri kullanırken, her zaman aynı kalacak ve programın birçok yerinde tekrar edilecek değerler için Sabitler (Constants) kullanmalıyız.
Sabitler define() fonksiyonu ile oluşturulurlar. İsimlendirme kuralları değişkenlerle aynıdır, ancak sabitlerin isminin başında dolar işareti ($) bulunmaz. Ayrıca kodun okunabilirliğini artırmak için geleneksel olarak tamamen büyük harflerle yazılırlar. Değişkenlerden farklı olarak sabitler unset() ile silinemezler.
<?php
// Sabit tanımlama
define('PROGRAM_ADI', 'Sistem 2026');
// Değişken tanımlama
$versiyon = 1.5;
// Çıktı: Sistem 2026 versiyon 1.5 başlatılıyor...
echo PROGRAM_ADI . ' versiyon ' . $versiyon . ' başlatılıyor...';
?>
Sonuç olarak PHP’de değişkenler, dinamik ve esnek yapısıyla geliştiricilere büyük kolaylık sağlar. Doğru isimlendirme kurallarına uymak, veri türlerini tanımak ve hangi verinin nerede saklanacağını planlamak (sabit mi yoksa değişken mi?), sağlam bir web uygulaması geliştirmenin en kritik adımıdır.





