WhatsApp

Bölüm 04: PHP’de Değişkenler

PHP’de değişkenler, verileri saklamak ve işlemek için kullanılan temel yapı taşlarıdır. Bu yazıda PHP değişkenleri ile ilgili her yönü detaylı bir şekilde ele alacağız.

Temeller: PHP’de Değişken Tanımlama

PHP’de değişkenler $ (dolar) işareti ile tanımlanır ve bir değer alır.

Değişken Tanımlama Kuralları:

  • ✅ $degiskenAdi = “Merhaba PHP”; → Geçerli
  • ❌ $1degisken = 10; → Geçersiz (Rakam ile başlayamaz)
  • ❌ $degisken-adi = “Hata”; → Geçersiz (Sadece _ kullanılabilir, – değil)
<?php
$isim = "Ahmet";
$yas = 25;
$pi = 3.14;
$aktifMi = true;

echo "İsim: $isim, Yaş: $yas, Pi: $pi, Aktif mi? " . ($aktifMi ? "Evet" : "Hayır");
?>

PHP, dinamik türleme özelliği sayesinde değişken türlerini otomatik olarak belirler:

<?php
$degisken = 10; // int
$degisken = "PHP"; // string (Tür değiştirme mümkündür)
?>

Süper Küreseller: Öntanımlı Değişkenler

PHP, her yerden erişilebilen bazı süper küresel değişkenler içerir. Bunlar, genellikle kullanıcı girdileri, sunucu bilgileri veya oturum yönetimi gibi amaçlarla kullanılır.

Süper Küresel DeğişkenAçıklama
$_GETURL parametrelerini içerir.
$_POSTForm verilerini içerir.
$_REQUESTHem $_GET hem $_POST verilerini alır.
$_SESSIONKullanıcı oturum verilerini saklar.
$_COOKIEKullanıcı tarayıcısında saklanan verileri içerir.
$_FILESDosya yükleme işlemlerini yönetir.
$_SERVERSunucu ve istek bilgilerini içerir.
<?php
echo "Kullanıcının IP adresi: " . $_SERVER['REMOTE_ADDR'];
?>

Scope: Değişken Etki Alanı

PHP’de değişkenlerin etki alanı (scope), nereden erişilebileceğini belirler. Yerel, küresel ve statik adı altında 3 tip ana değişken kapsamı bulunmaktadır.

Yerel (Local) Değişkenler

Bir fonksiyon içinde tanımlanan değişkenler sadece o fonksiyon içinde kullanılabilir:

<?php
function ornek() {
    $lokalDegisken = "Bu sadece fonksiyon içinde geçerli";
    echo $lokalDegisken;
}
ornek();
// echo $lokalDegisken; // Hata: Değişken bulunamadı!
?>

Global (Küresel) Değişkenler

Bir fonksiyon dışındaki değişkenlere fonksiyon içinden global anahtar kelimesi ile erişilebilir:

<?php
$globalDegisken = "Ben her yerde varım!";

function goster() {
    global $globalDegisken;
    echo $globalDegisken;
}

goster(); // Çıktı: Ben her yerde varım!
?>

Statik (Static) Değişkenler

Fonksiyon her çağrıldığında değerini koruması için static kullanılır:

<?php
function sayac() {
    static $sayi = 0;
    $sayi++;
    echo "Sayac: $sayi<br>";
}

sayac(); // 1
sayac(); // 2
sayac(); // 3
?>

Dinamik Değişkenler: Veri Türü Belirtilmeyenler

PHP’de değişken isimleri dinamik olarak atanabilir. Bir değişkenin içeriği başka bir değişken adı olarak kullanılabilir.

<?php
$degiskenAdi = "isim";
$$degiskenAdi = "Ahmet"; // $isim = "Ahmet";

echo $isim; // Çıktı: Ahmet
?>

Bu özellik, dinamik veri işleme ve meta programlama için oldukça kullanışlıdır. Ancak, fazla kullanımı okunabilirliği düşürebilir!

Dış Kaynaklı Değişkenler

PHP’de dış kaynaklardan gelen verileri güvenli bir şekilde işlemek önemlidir. Kullanıcı girdileri, formlar, API çağrıları ve veritabanı sorguları gibi farklı kaynaklardan gelebilir.

En Yaygın Dış Kaynaklar:

  • Form verileri: $_POST, $_GET
  • Çerezler (Cookies): $_COOKIE
  • Oturum değişkenleri: $_SESSION
  • Dosya yüklemeleri: $_FILES
  • Sunucu bilgileri: $_SERVER

Güvenlik Önlemleri:

  • SQL Enjeksiyonuna Karşı: mysqli_real_escape_string() veya PDO::prepare() kullanın.
  • XSS Saldırılarına Karşı: htmlspecialchars() ile verileri filtreleyin.
  • Boş veya Geçersiz Değerlere Karşı: isset() ve empty() kontrollerini ekleyin.
<?php
if (isset($_GET['ad'])) {
    $ad = htmlspecialchars($_GET['ad']); // XSS koruması
    echo "Merhaba, $ad!";
} else {
    echo "Lütfen adınızı girin.";
}
?>

Bölüm Sonu Canavarı: PHP Değişken Testi

Bu bölüme kadar PHP’de değişkenler ile ilgili birçok temel ve ileri seviye konuyu öğrendik. Şimdi öğrendiklerini pekiştirmek için bazı görevleri tamamlamaya hazır mısın?

📌 Görev: Aşağıdaki değişken tanımlamalarından hangileri hatalıdır? Neden?

$ad = "Ali";
$1yas = 25;
$soy-ad = "Yılmaz";
$_dogum_yili = 1998;

💡 İpucu: Değişken isimlendirme kurallarını gözden geçir!

📌 Görev: Bir kullanıcıdan gelen form verisini $_POST süper küresel değişkeni ile al ve güvenli bir şekilde ekrana yazdır.

💡 İpucu: Kullanıcıdan gelen verileri XSS saldırılarına karşı korumayı unutma!

📌 Görev: Aşağıdaki kod bloğunda global anahtar kelimesi kullanılmazsa ne olur? Kodun çıktısını tahmin et!

$mesaj = "Merhaba Dünya!";

function yazdir() {
    echo $mesaj;
}

yazdir();

💡 İpucu: Fonksiyon içinde global değişkenlere erişmek için ne yapman gerektiğini hatırla!

📌 Görev: Aşağıdaki kodun çıktısını tahmin et ve nedenini açıkla:

$degiskenAdi = "sehir";
$$degiskenAdi = "İstanbul";

echo $sehir;

💡 İpucu: Değişken değişkenler kavramını tekrar gözden geçir!

Posted in PHP Eğitimi
Write a comment