PHP Değişkenler ve Veri Tipleri
PHP'de değişken tanımlama kuralları ve string, integer, float, boolean veri tiplerini öğrenin.
Harika bir soru! PHP'de değişkenler ve veri tipleri, dilin temel yapı taşlarıdır. Şimdi bunları detaylıca ve örneklerle açıklayalım.
---
## PHP Değişkenleri (Variables)
Değişkenler, programlamada bilgiyi (veri) depolamak için kullanılan "adlandırılmış bellek konumları" veya "kutular" gibidir. PHP'de bir değişken tanımlamak için bazı kurallar vardır:
1. **`$` Sembolü:** Tüm PHP değişkenleri bir dolar (`$`) işareti ile başlar. Bu, PHP'ye bunun bir değişken olduğunu gösterir.
* Örnek: `$isim`, `$yas`, `$toplamFiyat`
2. **Harf veya Alt Çizgi ile Başlama:** Dolar işaretinden sonraki ilk karakter bir harf (a-z, A-Z) veya bir alt çizgi (`_`) olmalıdır. Rakamla başlayamaz.
* Geçerli: `$ad`, `$_sistemDegiskeni`
* Geçersiz: `$1sayi`, `$-urun`
3. **Geçerli Karakterler:** Değişken adı harfler, rakamlar (0-9) ve alt çizgilerden oluşabilir. Boşluk içeremez.
* Geçerli: `$urunKodu`, `$kullanici_adi`, `$sayi1`
* Geçersiz: `$urun kodu` (boşluk var)
4. **Büyük/Küçük Harf Duyarlılığı:** PHP değişkenleri büyük/küçük harf duyarlıdır (case-sensitive). Yani `$yas` ile `$Yas` iki farklı değişkendir.
* Örnek: `$isim = "Ali"; $Isim = "Veli";` Bu iki farklı değişkendir.
5. **Değer Atama:** Değişkenlere değer atamak için `=` (eşittir) operatörü kullanılır.
* Örnek: `$mesaj = "Merhaba Dünya!";`
6. **Dinamik Tip (Loosely Typed):** PHP, değişkenlerin veri tipini otomatik olarak belirler. Bir değişkenin tipini önceden belirtmenize gerek yoktur. Bir değişkene önce bir metin, sonra bir sayı atayabilirsiniz ve PHP bunu sorunsuz bir şekilde yönetir.
**Değişken Tanımlama ve Kullanım Örnekleri:**
```php
<?php
// String (Metin) değişkeni
$isim = "Ahmet Yılmaz";
echo "Adınız: " . $isim . "<br>"; // Çıktı: Adınız: Ahmet Yılmaz
// Integer (Tam Sayı) değişkeni
$yas = 30;
echo "Yaşınız: " . $yas . "<br>"; // Çıktı: Yaşınız: 30
// Float (Ondalıklı Sayı) değişkeni
$fiyat = 49.99;
echo "Ürünün fiyatı: " . $fiyat . " TL<br>"; // Çıktı: Ürünün fiyatı: 49.99 TL
// Boolean (Mantıksal) değişkeni
$isAktif = true;
echo "Kullanıcı aktif mi? " . ($isAktif ? "Evet" : "Hayır") . "<br>"; // Çıktı: Kullanıcı aktif mi? Evet
// Değişkenin değerini değiştirmek ve tipinin dinamik olarak değiştiğini görmek
$veri = "Bu bir metin";
echo "Veri tipi: " . gettype($veri) . ", Değer: " . $veri . "<br>"; // Çıktı: Veri tipi: string, Değer: Bu bir metin
$veri = 123; // Şimdi bir tam sayı oldu
echo "Veri tipi: " . gettype($veri) . ", Değer: " . $veri . "<br>"; // Çıktı: Veri tipi: integer, Değer: 123
?>
```
---
## PHP Veri Tipleri (Data Types)
PHP, farklı türdeki verileri depolamak için çeşitli veri tiplerini destekler. Bunları temel olarak üç kategoriye ayırabiliriz: **Scalar (Tekil Değer) Tipleri**, **Compound (Bileşik) Tipler** ve **Special (Özel) Tipler**.
### A. Scalar Tipler (Tekil Değer Tipleri)
Tek bir değer tutan tiplerdir.
1. **String (Metin Dizesi)**
* Metin verilerini depolamak için kullanılır.
* Tek tırnak (`'`) veya çift tırnak (`"`) arasına yazılır.
* **Tek Tırnak vs. Çift Tırnak:**
* Tek tırnak, içeriği olduğu gibi kabul eder. Değişkenleri yorumlamaz.
* Çift tırnak, içerideki değişkenleri yorumlar (interpolation) ve özel kaçış dizilerini (`\n`, `\t` gibi) işler.
**Örnek:**
```php
<?php
$ad = "Ayşe";
$mesaj1 = 'Merhaba Dünya!'; // Tek tırnak
$mesaj2 = "Merhaba, $ad!"; // Çift tırnak, değişken yorumlanır
$mesaj3 = 'Merhaba, $ad!'; // Tek tırnak, değişken yorumlanmaz
echo $mesaj1 . "<br>"; // Çıktı: Merhaba Dünya!
echo $mesaj2 . "<br>"; // Çıktı: Merhaba, Ayşe!
echo $mesaj3 . "<br>"; // Çıktı: Merhaba, $ad!
?>
```
2. **Integer (Tam Sayı)**
* Ondalık kısmı olmayan pozitif veya negatif tam sayıları depolamak için kullanılır.
* PHP'nin platformuna bağlı olarak genellikle 32-bit veya 64-bit bir sayıdır.
**Örnek:**
```php
<?php
$sayi1 = 123;
$sayi2 = -45;
$sifir = 0;
echo "Sayı 1: " . $sayi1 . "<br>"; // Çıktı: Sayı 1: 123
echo "Sayı 2: " . $sayi2 . "<br>"; // Çıktı: Sayı 2: -45
echo "Sıfır: " . $sifir . "<br>"; // Çıktı: Sıfır: 0
?>
```
3. **Float (Kayan Noktalı Sayı / Ondalıklı Sayı)**
* Ondalık kısmı olan veya üslü formda sayıları depolamak için kullanılır.
* Bazen "double" olarak da adlandırılır.
**Örnek:**
```php
<?php
$pi = 3.14159;
$fiyat = 99.99;
$buyukSayi = 1.234e3; // 1.234 * 10^3 = 1234.0
echo "Pi: " . $pi . "<br>"; // Çıktı: Pi: 3.14159
echo "Fiyat: " . $fiyat . "<br>"; // Çıktı: Fiyat: 99.99
echo "Büyük Sayı: " . $buyukSayi . "<br>"; // Çıktı: Büyük Sayı: 1234
?>
```
4. **Boolean (Mantıksal)**
* Sadece iki olası değeri vardır: `true` (doğru) veya `false` (yanlış).
* Genellikle koşullu ifadelerde kullanılır.
* `true` ve `false` anahtar kelimeleri büyük/küçük harf duyarlı değildir (`TRUE`, `false` hepsi aynıdır).
**Örnek:**
```php
<?php
$isLoggedIn = true;
$hasErrors = false;
if ($isLoggedIn) {
echo "Kullanıcı giriş yapmıştır.<br>"; // Çıktı: Kullanıcı giriş yapmıştır.
} else {
echo "Kullanıcı giriş yapmamıştır.<br>";
}
if ($hasErrors) {
echo "Hatalar var.<br>";
} else {
echo "Hata yok.<br>"; // Çıktı: Hata yok.
}
?>
```
### B. Compound Tipler (Bileşik Tipler)
Birden fazla değeri veya daha karmaşık yapıları tutan tiplerdir.
1. **Array (Dizi)**
* Birden fazla değeri tek bir değişken içinde depolamak için kullanılır.
* Değerlere sayısal indeksler (0'dan başlayarak) veya anahtarlar (associative array) aracılığıyla erişilir.
* Farklı veri tiplerindeki değerleri bir arada tutabilir.
**Örnek:**
```php
<?php
// Indexed Array (İndeksli Dizi)
$meyveler = ["elma", "armut", "kiraz"];
echo "İlk meyve: " . $meyveler[0] . "<br>"; // Çıktı: İlk meyve: elma
// Associative Array (İlişkisel Dizi)
$kullanici = [
"ad" => "Mert",
"soyad" => "Demir",
"yas" => 28
];
echo "Kullanıcının adı: " . $kullanici["ad"] . "<br>"; // Çıktı: Kullanıcının adı: Mert
// Dizi içeriğini detaylı görmek için
echo "<pre>";
print_r($kullanici);
echo "</pre>";
/* Çıktı:
Array
(
[ad] => Mert
[soyad] => Demir
[yas] => 28
)
*/
?>
```
2. **Object (Nesne)**
* Sınıfların (class) örnekleridir.
* Hem veri (özellikler/properties) hem de bu veri üzerinde işlem yapabilen fonksiyonları (metotlar/methods) bir araya getirirler.
* Nesne tabanlı programlamanın temelini oluşturur.
**Örnek:**
```php
<?php
class Urun {
public $adi;
public $fiyat;
public function getTamBilgi() {
return $this->adi . " - " . $this->fiyat . " TL";
}
}
$telefon = new Urun(); // Urun sınıfından bir nesne oluştur
$telefon->adi = "Akıllı Telefon";
$telefon->fiyat = 5999.50;
echo $telefon->getTamBilgi() . "<br>"; // Çıktı: Akıllı Telefon - 5999.5 TL
?>
```
### C. Special Tipler (Özel Tipler)
Bu tipler diğer kategorilere uymayan özel durumlardır.
1. **NULL**
* Bir değişkenin hiçbir değer içermediğini belirtir.
* `NULL` değeri, büyük/küçük harf duyarlı değildir (`null`, `NULL` aynıdır).
* Bir değişken şu durumlarda `NULL` olarak kabul edilir:
* Kendisine `NULL` değeri atanmışsa.
* Tanımlanmamışsa (unset).
* `unset()` fonksiyonu ile değeri kaldırılmışsa.
**Örnek:**
```php
<?php
$degisken1 = "Merhaba";
var_dump($degisken1); // string(7) "Merhaba"
$degisken1 = null;
var_dump($degisken1); // NULL
$degisken2; // Tanımlanmamış
// var_dump($degisken2); // Notice: Undefined variable $degisken2
$degisken3 = "PHP";
unset($degisken3); // Değeri kaldırıldı
// var_dump($degisken3); // Notice: Undefined variable $degisken3
?>
```
2. **Resource (Kaynak)**
* Harici bir kaynak (örneğin bir veritabanı bağlantısı, dosya işleyici, resim) için bir referanstır.
* Bu kaynaklar genellikle PHP dışındaki sistemler tarafından yönetilir ve PHP sadece bu kaynağa erişim sağlayan bir "işaretçi" tutar.
* PHP'de doğrudan bir kaynak oluşturmazsınız, genellikle `fopen()`, `mysqli_connect()` gibi fonksiyonların dönüş değeridir.
**Örnek:**
```php
<?php
$dosya = fopen("ornek.txt", "r"); // ornek.txt dosyasını okuma modunda aç
var_dump($dosya); // Çıktı: resource(4) of type (stream)
fclose($dosya); // Kaynağı serbest bırak
?>
```
---
**Bir Değişkenin Tipini Kontrol Etmek:**
PHP'de bir değişkenin veri tipini öğrenmek veya kontrol etmek için çeşitli fonksiyonlar bulunur:
* **`gettype($degisken)`:** Değişkenin tipini string olarak döndürür (örn: "string", "integer", "array").
* **`var_dump($degisken)`:** Değişkenin tipi, değeri ve boyut (stringler için) hakkında detaylı bilgi verir. En çok kullanılan debugging aracıdır.
* **`is_string($degisken)`, `is_int($degisken)`, `is_float($degisken)`, `is_bool($degisken)`, `is_array($degisken)`, `is_object($degisken)`, `is_null($degisken)`:** Değişkenin belirli bir tipte olup olmadığını kontrol eden boolean değer döndüren fonksiyonlar.
**Örnek:**
```php
<?php
$myVar = "Hello";
echo gettype($myVar) . "<br>"; // Çıktı: string
var_dump($myVar); // Çıktı: string(5) "Hello"
if (is_string($myVar)) {
echo "myVar bir stringtir.<br>"; // Çıktı: myVar bir stringtir.
}
?>
```
---
Umarım bu detaylı açıklama PHP değişkenleri ve veri tiplerini anlamanıza yardımcı olmuştur!
Son Paylaşımlar
-
Python Temelleri Genel Tekrar
14:39:24 - 13/12/2025 -
Python Performans İpuçları
14:38:59 - 13/12/2025 -
Python’da Temiz Kod Yazma
14:38:28 - 13/12/2025 -
Python Mini Proje: Sayı Tahmin Oyunu
14:37:58 - 13/12/2025 -
Python Mini Proje: Hesap Makinesi
14:37:31 - 13/12/2025