CodeBlanks Logo Icon CodeBlanks

Oturumdan veri okuma

PHP kursu · Orta seviye · Ders 84/115

$_SESSION'dan veriyi okuyup isset() ile varlığını kontrol etmeyi öğrenirsin.

$_SESSION'dan veri okuma

Oturuma yazdığın veriyi $_SESSION['anahtar'] ile okursun. Ancak anahtar yoksa PHP bir uyarı verir. Bunu önlemek için isset() ile anahtarın varlığını kontrol edersin.

isset($_SESSION['dil']) true dönerse anahtar tanımlıdır ve güvenle okunabilir. False dönerse tanımsızdır; varsayılan bir değer kullanırsın.

İpucu: $_SESSION['dil'] ?? 'tr' (null birleştirici) ile tek satırda hem kontrol hem varsayılan sağlarsın.

Tanımsız anahtar için varsayılan

Oturumdan okurken anahtar tanımsız olabilir. İki yaygın yol vardır: if/else ile isset() kontrolü veya null birleştirici ?? operatörü.

$dil = isset($_SESSION['dil']) ? $_SESSION['dil'] : 'tr'; klasik ternary yazımdır. Daha kısası: $dil = $_SESSION['dil'] ?? 'tr';

İkisi de aynıyı yapar: tanımsızsa 'tr', değilse oturumdaki değeri verir. Kısa olan modern PHP 8'de tercih edilir.

Uygulama Tanımsız anahtardan varsayılan dil oku

session_start() çağır. if/else ile isset($_SESSION['lang']) kontrol et: tanımlıysa $lang'a oturumdaki değeri, değilse 'tr' ata. Sonra echo $lang yazdır.

Örnek çözümü göster
session_start çağır, if(isset($_SESSION['lang'])) ile $lang'i oturumdan, else'de 'tr' ata, echo $lang yaz.
Örnek çözüm:
<?php
// $_SESSION['lang'] yoksa varsayılan dil ile yazdır
session_start();
if (isset($_SESSION['lang'])) {
    $lang = $_SESSION['lang'];
} else {
    $lang = 'tr';
}
echo $lang . "\n";

Kendini test et

  1. isset ile anahtar kontrolünü tamamla

    <?php
    session_start();
    $_SESSION['count'] = 5;
    if (____ && $_SESSION['count'] > 0) {
        echo 'ok';
    } else {
        echo 'tr';
    }
    
    Cevabı göster
    <?php
    session_start();
    $_SESSION['count'] = 5;
    if (isset($_SESSION['lang']) && $_SESSION['count'] > 0) {
        echo 'ok';
    } else {
        echo 'tr';
    }
    
  2. isset($_SESSION['yok']) ne döner?

    • true
    • 1
    • false
    • null
    Cevabı göster

    false — Doğru. Anahtar tanımsızsa isset false döner.

  3. Oturumdan okuma araçlarını eşleştir

    isset($_SESSION['k'])
    Anahtar var mı diye bakar
    $_SESSION['k']
    Değeri okur
    ?? 'varsayılan'
    Tanımsızsa varsayılan verir
    empty()
    Boş mu diye bakar

Orta seviye bölümündeki tüm dersler