Neler yeni

Yazılım Forum

Tüm özelliklerimize erişmek için şimdi bize katılın. Kayıt olduktan ve giriş yaptıktan sonra konu oluşturabilecek, mevcut konulara yanıt gönderebilecek, itibar kazanabilecek, özel mesajlaşmaya erişebilecek ve çok daha fazlasını yapabileceksiniz! Bu hizmetlerimiz ise tamamen ücretsiz ve kurallara uyulduğu sürece sınırsızdır, o zaman ne bekliyorsunuz? Hadi, sizde aramıza katılın!

PHP Temel Sözdizimi: Yeni Başlayanlar İçin Kapsamlı Bir Rehber

PHP Temel Sözdizimi: Yeni Başlayanlar İçin Kapsamlı Bir Rehber

Giriş
PHP (Hypertext Preprocessor), özellikle web geliştirme için tasarlanmış, genişletilebilir ve çok yönlü bir sunucu taraflı betik dilidir. Dinamik web sayfaları oluşturmak, veritabanlarıyla etkileşim kurmak ve web uygulamaları geliştirmek için yaygın olarak kullanılır. Facebook, Wikipedia ve WordPress gibi devasa platformların temelinde yatan bu dil, milyonlarca web sitesine güç vermektedir. PHP'nin öğrenilmesi kolay sözdizimi ve geniş topluluk desteği sayesinde, web geliştirme dünyasına adım atmak isteyenler için mükemmel bir başlangıç noktasıdır. Bu rehberde, PHP'nin temel sözdizimini adım adım öğrenecek, bu güçlü dilin yapı taşlarını keşfedeceksiniz. Her konuyu detaylıca ele alarak bolca örnek kod ile pekiştireceğiz.

1. PHP Kurulumu ve Çalışma Ortamı
PHP kodunu çalıştırabilmek için bir sunucu ortamına ihtiyacınız vardır. Genellikle Apache veya Nginx gibi bir web sunucusu, PHP yorumlayıcısı ve MySQL gibi bir veritabanı ile birlikte kullanılır. Bu bileşenlerin bir arada bulunduğu paketler (LAMP - Linux, Apache, MySQL, PHP; WAMP - Windows, Apache, MySQL, PHP; MAMP - macOS, Apache, MySQL, PHP; XAMPP - Cross-Platform, Apache, MySQL, PHP, Perl) yeni başlayanlar için kurulumu son derece basitleştirir. Örneğin, https://www.apachefriends.org/ adresinden XAMPP'i ücretsiz olarak indirebilir ve kurabilirsiniz. Kurulumdan sonra, PHP dosyalarınızı web sunucunuzun belge kök dizinine (genellikle `htdocs` veya `www`) yerleştirmeniz ve bir web tarayıcısı üzerinden erişmeniz gerekir. Örneğin, `C:\xampp\htdocs` dizinine `ilk_dosyam.php` adında bir dosya kaydettiyseniz, tarayıcınızdan `http://localhost/ilk_dosyam.php` adresine giderek çalıştırabilirsiniz.

2. PHP Etiketleri ve Yorum Satırları

PHP Kodu Nasıl Yazılır?
PHP kodu, standart olarak `<?php` etiketiyle başlar ve `?>` etiketiyle biter. Bu etiketler arasına yazdığınız her şey PHP yorumlayıcısı tarafından işlenir ve genellikle bir HTML belgesinin içine gömülerek kullanılır. Bu sayede dinamik içerikler HTML ile birleştirilebilir.

Kod:
<!DOCTYPE html>
<html>
<head>
    <title>PHP İlk Kodum</title>
</head>
<body>
    <h1>Merhaba PHP!</h1>
    <?php
        // PHP kodu burada başlar
        echo "Bu bir PHP çıktısıdır."; // echo, ekrana çıktı vermek için kullanılır
        echo "\n"; // Yeni satır
        echo "Bugünün tarihi: " . date("Y-m-d"); // date() fonksiyonu ile tarih
        // PHP kodu burada biter
    ?>
    <p>Bu HTML paragrafıdır.</p>
</body>
</html>

Yorum Satırları
Kodunuzu açıklamak, daha anlaşılır hale getirmek veya geçici olarak devre dışı bırakmak için yorum satırlarını kullanabilirsiniz. Yorum satırları PHP yorumlayıcısı tarafından göz ardı edilir ve çıktıya yansımaz.

  • Tek satırlık yorumlar: `//` veya `#` işaretleri ile başlar. Satır sonuna kadar devam eder.
  • Çok satırlı yorumlar: `/*` ile başlar ve `*/` ile biter. Birden fazla satırı yorumlamak için kullanılır.

Kod:
<?php
    // Bu tek satırlık bir yorumdur. Kodun ne iş yaptığını açıklar.

    # Bu da tek satırlık bir yorumdur, ancak `//` daha yaygındır.

    /*
     * Bu
     * çok satırlı
     * bir yorumdur.
     * Genellikle dosya başlıklarında veya büyük kod bloklarının açıklamalarında kullanılır.
     */

    echo "Yorumlar kodu daha okunabilir yapar ve geliştiricilere yardımcı olur.";

    // echo "Bu satır yorum satırı yapıldığı için çalışmayacak.";
?>

3. Değişkenler
Değişkenler, veri depolamak için kullanılan "kaplar" olarak düşünülebilir. PHP'de tüm değişkenler dolar işaretiyle (`$`) başlar. Değişkenlere bir değer atadığınızda otomatik olarak oluşturulurlar. PHP dinamik olarak tipleştirilmiş bir dil olduğu için, bir değişkenin veri tipini önceden belirtmenize gerek yoktur; atadığınız değere göre tip otomatik olarak belirlenir.

Kod:
<?php
    $isim = "Ahmet"; // String (Metin) tipinde bir değişken
    $yas = 30; // Integer (Tam Sayı) tipinde bir değişken
    $boy = 1.75; // Float (Ondalıklı Sayı) tipinde bir değişken
    $aktif = true; // Boolean (Mantıksal Değer) tipinde bir değişken
    $fiyat = null; // Null (Boş Değer) tipinde bir değişken

    echo "İsim: " . $isim . "\n"; // Değişkenin değerini ekrana yazdır
    echo "Yaş: " . $yas . "\n";
    echo "Boy: " . $boy . "\n";
    echo "Aktif: " . ($aktif ? 'Evet' : 'Hayır') . "\n";
    echo "Fiyat: " . ($fiyat === null ? 'Belirtilmedi' : $fiyat) . "\n";

    $yas = "otuz"; // Değişkenin tipi dinamik olarak değişebilir
    echo "Yeni Yaş: " . $yas . "\n";
?>

Değişken isimleri bir harf veya alt çizgi (`_`) ile başlamalıdır. Rakamla başlayamazlar. Sadece harfler, rakamlar ve alt çizgiler içerebilirler. PHP'de değişken isimleri büyük/küçük harfe duyarlıdır (`$isim` ve `$Isim` farklı değişkenlerdir).

4. Veri Tipleri
PHP, dinamik olarak tipleştirilmiş bir dil olsa da, çeşitli veri tiplerini destekler. Bir değişkenin tutabileceği farklı değer kategorilerini belirtirler:

  • String (Metin): Metin dizilerini depolamak için kullanılır. Tek veya çift tırnak içinde tanımlanır.
    Kod:
    <?php $mesaj = "Merhaba Dünya!"; // Çift tırnak
        $selamlama = 'Nasılsın?'; // Tek tırnak
        $uzun_metin = "Bu, uzun bir metindir ve
        birden fazla satıra yayılabilir."; // Yeni satır karakteri
        echo $mesaj . " " . $selamlama; ?>
  • Integer (Tam Sayı): Ondalık kısmı olmayan pozitif veya negatif tam sayıları depolamak için kullanılır.
    Kod:
    <?php $sayi = 123;
        $negatif_sayi = -45;
        $buyuk_sayi = 2147483647; // 32-bit sistemlerde int'in max değeri
        echo "Sayı: " . $sayi; ?>
  • Float (Ondalıklı Sayı / Double): Ondalık kısmı olan veya üssel gösterimdeki sayıları depolamak için kullanılır.
    Kod:
    <?php $fiyat = 19.99;
        $pi = 3.14159;
        $bilimsel_gosterim = 1.2e3; // 1200
        echo "Pi sayısı: " . $pi; ?>
  • Boolean (Mantıksal Değer): Sadece iki olası değer alabilen basit bir tiptir: `true` (doğru) veya `false` (yanlış). Genellikle koşullu ifadelerde kullanılır.
    Kod:
    <?php $is_valid = true;
        $is_active = false;
        if ($is_valid) { echo "Geçerli!"; } ?>
  • Array (Dizi): Tek bir değişkende birden fazla değeri depolamak için kullanılır. PHP dizileri oldukça esnektir ve hem sayısal indekslere (indeksli dizi) hem de adlandırılmış anahtarlara (ilişkisel dizi) sahip olabilir.
    Kod:
    <?php $meyveler = ["elma", "armut", "muz"]; // İndeksli dizi
        $kisi_bilgileri = ["ad" => "Ali", "yas" => 30]; // İlişkisel dizi
        echo $meyveler[0]; // elma
        echo $kisi_bilgileri["ad"]; // Ali ?>
  • Object (Nesne): Sınıfların örnekleridir. Nesne yönelimli programlamanın (OOP) temel yapı taşıdır. Karmaşık veri yapıları ve davranışlar için kullanılır.
    Kod:
        <?php
        class Ogrenci {
            public $ad;
            public $soyad;
            public function __construct($ad, $soyad) {
                $this->ad = $ad;
                $this->soyad = $soyad;
            }
            public function tamAdGetir() {
                return $this->ad . " " . $this->soyad;
            }
        }
        $ogrenci1 = new Ogrenci("Ayşe", "Yılmaz");
        echo $ogrenci1->tamAdGetir(); // Ayşe Yılmaz
        ?>
  • Null: Bir değişkenin değerinin olmadığını belirtir. Bir değişkene `null` değeri atandığında veya daha önce değer atanmamış bir değişkene erişilmeye çalışıldığında ortaya çıkar.
    Kod:
    <?php $degisken = null;
        if (is_null($degisken)) { echo "Değişkenin değeri null."; } ?>
  • Resource (Kaynak): Harici kaynaklara (veritabanı bağlantısı, dosya akışı vb.) özel referanslardır. PHP'nin harici sistemlerle etkileşim kurmasını sağlar. Bir resource değişkenini doğrudan yazdırmak genellikle bir hata verir; genellikle özel fonksiyonlarla işlenirler.
    Kod:
    <?php $dosya = fopen("ornek.txt", "r"); // Bir dosya kaynağı
        if ($dosya) { echo "Dosya başarıyla açıldı."; fclose($dosya); } ?>

5. Operatörler
Operatörler, değişkenler ve değerler üzerinde işlemler yapmak için kullanılır. Çeşitli kategorilere ayrılırlar:

  • Aritmetik Operatörler: Matematiksel işlemler için kullanılırlar.
    `+` (Toplama), `-` (Çıkarma), `*` (Çarpma), `/` (Bölme), `%` (Modülüs - kalanı bulur), `**` (Üs alma - PHP 5.6+).
    Kod:
    <?php $sonuc = 10 + 5; // 15
        $kalan = 17 % 5; // 2
        $us = 2 ** 3; // 8
        echo "Sonuç: " . $sonuc . ", Kalan: " . $kalan . ", Üs: " . $us; ?>
  • Atama Operatörleri: Değerleri değişkenlere atamak için kullanılır.
    `=` (Atama), `+=`, `-=`, `*=`, `/=`, `%=`, `**=` (Kısaltılmış atama operatörleri).
    Kod:
    <?php $x = 10; // x'e 10 ata
        $x += 5; // x = x + 5; (x şimdi 15)
        $y = 20; $y /= 4; // y = y / 4; (y şimdi 5)
        echo "x: " . $x . ", y: " . $y; ?>
  • Karşılaştırma Operatörleri: İki değeri karşılaştırır ve boolean (`true`/`false`) bir sonuç döndürür.
    `==` (Eşit mi - değer kontrolü), `===` (Aynı mı - değer ve tip kontrolü), `!=` (Eşit değil mi), `<>` (Eşit değil mi - `!=` ile aynı), `!==` (Aynı değil mi - değer veya tip farklı), `>` (Büyüktür), `<` (Küçüktür), `>=` (Büyük veya eşit), `<=` (Küçük veya eşit).
    Kod:
    <?php $esitMi = (5 == "5"); // true (değerler aynı)
        $ayniMi = (5 === "5"); // false (tipler farklı, int vs string)
        $farkliMi = (10 != 7); // true
        echo "Eşit mi: " . ($esitMi ? 'Evet' : 'Hayır') . ", Aynı mı: " . ($ayniMi ? 'Evet' : 'Hayır'); ?>
  • Mantıksal Operatörler: Birden fazla koşulu birleştirmek veya tersine çevirmek için kullanılır.
    `&&` (AND - ve), `||` (OR - veya), `!` (NOT - değil), `and`, `or`, `xor` (mantıksal dışlamalı veya).
    Kod:
    <?php $kosul1 = true;
        $kosul2 = false;
        $sonuc_and = ($kosul1 && $kosul2); // false
        $sonuc_or = ($kosul1 || $kosul2); // true
        $sonuc_not = !($kosul1); // false
        echo "AND: " . ($sonuc_and ? 'Evet' : 'Hayır') . ", OR: " . ($sonuc_or ? 'Evet' : 'Hayır'); ?>
  • Artırma/Azaltma Operatörleri: Bir değişkenin değerini 1 artırır veya 1 azaltır.
    `++` (Artırma), `--` (Azaltma). Önek (`++$i`) veya sonek (`$i++`) olarak kullanılabilir ve davranışları farklılık gösterir.
    Kod:
    <?php $sayac = 0;
        echo $sayac++; // 0 (önce değeri kullanır, sonra artırır)
        echo "\n";
        echo ++$sayac; // 2 (önce artırır, sonra değeri kullanır)
        echo "\n";
        $sayac--; // sayac şimdi 1
        echo $sayac; ?>
  • String Operatörleri: Metinleri birleştirmek için kullanılır.
    `.` (Birleştirme), `.` (Birleştirme ve atama).
    Kod:
    <?php $ad = "John";
        $soyad = "Doe";
        $tamAd = $ad . " " . $soyad; // "John Doe"
        $mesaj = "Merhaba";
        $mesaj .= " Dünya!"; // "Merhaba Dünya!"
        echo $tamAd . ", " . $mesaj; ?>
  • Dizi Operatörleri: Dizileri karşılaştırmak veya birleştirmek için kullanılır.
    `+` (Birleşim - anahtarlar çakışmadığında dizileri birleştirir), `==` (Eşitlik - aynı anahtar/değer çiftlerine sahip mi), `===` (Aynılık - aynı anahtar/değer çiftleri ve aynı sıralama/tip).
    Kod:
        <?php
        $dizi1 = ["a" => 1, "b" => 2];
        $dizi2 = ["c" => 3, "d" => 4];
        $birlesim = $dizi1 + $dizi2; // Anahtarlar çakışmazsa birleştirir
        // $birlesim şimdi ["a" => 1, "b" => 2, "c" => 3, "d" => 4]
    
        $dizi3 = ["a" => 1, "b" => 2];
        $dizi4 = ["b" => 2, "a" => 1]; // Farklı sıra
        echo "\n";
        echo "Dizi eşit mi (==): " . (($dizi3 == $dizi4) ? 'Evet' : 'Hayır'); // Evet
        echo "\n";
        echo "Dizi aynı mı (===): " . (($dizi3 === $dizi4) ? 'Evet' : 'Hayır'); // Hayır
        ?>
  • Spaceship Operatörü (PHP 7+): `<=>` Üç yollu karşılaştırma yapar. Sol operand sağdan küçükse -1, eşitse 0, büyükse 1 döner. Özellikle sıralama algoritmalarında kullanışlıdır.
    Kod:
    <?php echo 5 <=> 3; // 1 (5 > 3)
        echo "\n";
        echo 5 <=> 5; // 0 (5 == 5)
        echo "\n";
        echo 3 <=> 5; // -1 (3 < 5) ?>

6. Kontrol Yapıları
Kodunuzun akışını kontrol etmek için koşullu ifadeler ve döngüler kullanılır. Bu yapılar, programınızın belirli koşullar altında farklı eylemler gerçekleştirmesini veya belirli kod bloklarını tekrarlamasını sağlar.

If-Else Yapıları
Belirli bir koşula bağlı olarak farklı kod bloklarını çalıştırmak için kullanılır. Bir koşul doğruysa bir blok, yanlışsa başka bir blok çalışır.

Kod:
<?php
    $saat = 14;

    if ($saat < 12) {
        echo "Günaydın!";
    } elseif ($saat < 18) {
        echo "Tünaydın!";
    } else {
        echo "İyi Akşamlar!";
    }
    // Çıktı: Tünaydın!

    $kullanici_giris_yapildi = true;
    $admin_mi = false;

    if ($kullanici_giris_yapildi && $admin_mi) {
        echo "\nAdmin paneline hoş geldiniz.";
    } elseif ($kullanici_giris_yapildi) {
        echo "\nKullanıcı paneline hoş geldiniz.";
    } else {
        echo "\nLütfen giriş yapınız.";
    }
?>

Switch Yapısı
Bir değişkenin farklı değerlerine göre farklı kod bloklarını çalıştırmak için kullanılır. Özellikle çok sayıda `elseif` koşulu olduğunda `switch` daha okunabilir bir alternatif sunar.

Kod:
<?php
    $favoriRenk = "mavi";

    switch ($favoriRenk) {
        case "kırmızı":
            echo "Favori renginiz kırmızı.";
            break;
        case "mavi":
            echo "Favori renginiz mavi.";
            break;
        case "yeşil":
            echo "Favori renginiz yeşil.";
            break;
        default:
            echo "Bilinmeyen renk.";
            break;
    }
    // Çıktı: Favori renginiz mavi.

    $gun = "Pazartesi";
    switch ($gun) {
        case "Cumartesi":
        case "Pazar":
            echo "\nBugün hafta sonu!";
            break;
        default:
            echo "\nBugün hafta içi.";
            break;
    }
?>

Döngüler
Tekrar eden görevleri otomatikleştirmek ve aynı kod bloğunu birden çok kez çalıştırmak için kullanılır. PHP'de dört ana döngü türü vardır:

  • While Döngüsü: Belirtilen koşul doğru olduğu sürece çalışır. Döngü başlamadan önce koşul kontrol edilir.
    Kod:
        <?php
            $i = 1;
            while ($i <= 5) {
                echo $i . " ";
                $i++; // Artırma ifadesi, sonsuz döngüyü engeller
            }
            // Çıktı: 1 2 3 4 5
        ?>
  • Do-While Döngüsü: En az bir kez çalışır, ardından koşul kontrol edilir. Koşul doğru olduğu sürece çalışmaya devam eder.
    Kod:
        <?php
            $j = 6;
            do {
                echo $j . " ";
                $j++;
            } while ($j <= 5);
            // Çıktı: 6 (Koşul sağlanmasa bile bir kez çalıştı)
        ?>
  • For Döngüsü: Belirli bir sayıda tekrar etmek için tasarlanmıştır. Başlangıç değeri, bitiş koşulu ve artırma/azaltma ifadesi belirterek kullanılır.
    Kod:
        <?php
            for ($k = 1; $k <= 3; $k++) {
                echo "Tekrar " . $k . " ";
            }
            // Çıktı: Tekrar 1 Tekrar 2 Tekrar 3
        ?>
  • Foreach Döngüsü: Özellikle diziler üzerinde döngü yapmak için tasarlanmıştır. Dizinin her bir elemanı için bir kez çalışır.
    Kod:
        <?php
            $meyveler = ["elma", "armut", "muz", "çilek"];
            foreach ($meyveler as $meyve) {
                echo $meyve . " ";
            }
            // Çıktı: elma armut muz çilek
    
            // Anahtar ve değerleri almak için:
            $kisi = ["ad" => "Veli", "yas" => 40, "sehir" => "Ankara"];
            foreach ($kisi as $anahtar => $deger) {
                echo "\n" . ucfirst($anahtar) . ": " . $deger;
            }
            // Çıktı: Ad: Veli
            // Yaş: 40
            // Şehir: Ankara
        ?>

7. Fonksiyonlar
Fonksiyonlar, belirli bir görevi yerine getiren, yeniden kullanılabilir kod bloklarıdır. Kodun tekrarını azaltır, okunabilirliği artırır ve bakımı kolaylaştırır.

Fonksiyon Tanımlama ve Çağırma
`function` anahtar kelimesiyle tanımlanır, ardından fonksiyon adı ve parantez içindeki parametreler gelir.
Kod:
<?php
    function selamVer($isim) {
        return "Merhaba, " . $isim . "!";
    }

    echo selamVer("Deniz"); // Çıktı: Merhaba, Deniz!
    echo "\n";
    echo selamVer("Zeynep"); // Fonksiyonu tekrar kullan

    function toplama($sayi1, $sayi2) {
        $toplam = $sayi1 + $sayi2;
        return $toplam;
    }

    $sonuc_toplama = toplama(15, 7);
    echo "\nToplam: " . $sonuc_toplama; // Çıktı: Toplam: 22
?>

Varsayılan Parametre Değerleri
Fonksiyon parametrelerine varsayılan değerler atayabilirsiniz. Eğer bu parametreye değer gönderilmezse, varsayılan değer kullanılır.
Kod:
<?php
    function tebrikEt($isim = "Misafir", $mesaj = "Hoş geldiniz") {
        echo $mesaj . ", " . $isim . "!";
    }

    tebrikEt(); // Hoş geldiniz, Misafir!
    echo "\n";
    tebrikEt("Ayşe"); // Hoş geldiniz, Ayşe!
    echo "\n";
    tebrikEt("Mehmet", "Günaydın"); // Günaydın, Mehmet!
?>

8. Diziler (Arrays)
Diziler, tek bir değişkende birden fazla değeri depolamanın etkili bir yoludur. PHP dizileri, çeşitli veri tiplerini aynı anda tutabilir ve dinamik olarak boyutlandırılabilir.

  • İndeksli Diziler: Elemanlara sayısal indekslerle (0'dan başlayarak) erişilir. En yaygın dizi türüdür.
    Kod:
        <?php
            $arabalar = ["Volvo", "BMW", "Toyota", "Mercedes"];
            echo $arabalar[0]; // Volvo
            echo "\n";
            echo $arabalar[2]; // Toyota
    
            $sayilar = array(10, 20, 30); // Eski tanımlama şekli
            $sayilar[] = 40; // Yeni eleman ekleme
            print_r($sayilar); // Diziyi okunur şekilde yazdırır
        ?>
  • İlişkisel (Associative) Diziler: Elemanlara adlandırılmış anahtarlarla (string) erişilir. Veritabanı kayıtları veya nesne benzeri yapılar için idealdir.
    Kod:
        <?php
            $kisi = [
                "ad" => "Ali",
                "soyad" => "Can",
                "yas" => 25,
                "sehir" => "İstanbul"
            ];
            echo $kisi["ad"]; // Ali
            echo "\n";
            echo $kisi["sehir"]; // İstanbul
    
            $kisi["meslek"] = "Mühendis"; // Yeni anahtar-değer çifti ekleme
            print_r($kisi);
        ?>
  • Çok Boyutlu Diziler: Diziler içinde dizilerdir. Karmaşık veri yapılarını temsil etmek için kullanılır, örneğin bir tablo veya matris.
    Kod:
        <?php
            $ogrenciler = [
                ["Ali", 20, "Bilgisayar Mühendisliği", ["Matematik", "Fizik"]],
                ["Zeynep", 22, "Tarih", ["Edebiyat", "Sanat Tarihi"]],
                ["Deniz", 21, "Mimarlık", ["Çizim", "Tasarım"]]
            ];
            echo $ogrenciler[0][0]; // Ali
            echo "\n";
            echo $ogrenciler[1][2]; // Tarih
            echo "\n";
            echo $ogrenciler[0][3][0]; // Matematik (Ali'nin ilk dersi)
    
            // Çok boyutlu diziyi foreach ile dolaşma
            foreach ($ogrenciler as $ogrenci) {
                echo "\nAd: " . $ogrenci[0] . ", Yaş: " . $ogrenci[1] . ", Bölüm: " . $ogrenci[2];
                echo " (Dersler: " . implode(", ", $ogrenci[3]) . ")";
            }
        ?>

9. Süperglobals
PHP'de her zaman erişilebilir olan ve kapsamı ne olursa olsun tüm betiklerde kullanılabilen özel global değişkenlerdir. Bu değişkenler, sunucu, kullanıcı oturumu ve istek verileri hakkında önemli bilgiler içerir.

  • $_GET: URL parametreleri (query string) ile gönderilen verileri alır. Formlar `method="get"` olduğunda veya doğrudan URL'ye eklenen parametreler için kullanılır.
    Kod:
        <?php
        // Örn: index.php?ad=Mehmet&soyad=Yılmaz
        if (isset($_GET['ad'])) {
            echo "Merhaba, " . htmlspecialchars($_GET['ad']) . "!";
        } else {
            echo "Merhaba, misafir!";
        }
        ?>
  • $_POST: HTTP POST metodu ile gönderilen verileri alır. Genellikle HTML formları `method="post"` olduğunda kullanılır. Bu veriler URL'de görünmez ve daha büyük veri göndermek için uygundur.
    Kod:
        <?php
        // Bir formdan geldiğini varsayalım:
        // <form method="post" action="post_handler.php">
        //   <input type="text" name="kullanici_adi">
        //   <button type="submit">Gönder</button>
        // </form>
        if (isset($_POST['kullanici_adi'])) {
            echo "Kullanıcı Adı: " . htmlspecialchars($_POST['kullanici_adi']);
        } else {
            echo "Lütfen kullanıcı adınızı girin.";
        }
        ?>
  • $_REQUEST: Hem `$_GET` hem de `$_POST` verilerini (ve ayrıca `$_COOKIE` verilerini) içerir. Her ikisine de erişmek için kısayol olsa da, güvenlik nedeniyle genellikle doğrudan `$_GET` veya `$_POST` kullanılması tercih edilir.
  • $_SERVER: Sunucu ve yürütme ortamı bilgileri. HTTP başlıkları, dosya yolları ve betik konumları gibi birçok yararlı bilgi içerir.
    Kod:
    <?php echo $_SERVER['PHP_SELF']; // Şu anki dosya yolu
        echo "\n";
        echo $_SERVER['SERVER_NAME']; // Sunucu adı
        echo "\n";
        echo $_SERVER['REQUEST_METHOD']; // İstek metodu (GET, POST vb.) ?>
  • $_SESSION: Kullanıcı oturumu verileri. Sunucu tarafında depolanır ve bir kullanıcının web sitesindeki birden fazla sayfa isteği arasında veri saklamak için kullanılır. Kullanmadan önce `session_start()` fonksiyonu çağrılmalıdır.
    Kod:
        <?php
        session_start();
        if (isset($_SESSION['ziyaret_sayisi'])) {
            $_SESSION['ziyaret_sayisi']++;
        } else {
            $_SESSION['ziyaret_sayisi'] = 1;
        }
        echo "Bu sayfayı " . $_SESSION['ziyaret_sayisi'] . " kez ziyaret ettiniz.";
        ?>
  • $_COOKIE: HTTP çerezleri. Kullanıcının tarayıcısında depolanan küçük veri parçalarıdır. Oturum bilgilerini tutmak veya kullanıcı tercihlerini hatırlamak için kullanılır.
    Kod:
        <?php
        setcookie("kullanici_tercihi", "tema_koyu", time() + (86400 * 30), "/"); // 30 günlük çerez
        if (isset($_COOKIE['kullanici_tercihi'])) {
            echo "Tercihiniz: " . htmlspecialchars($_COOKIE['kullanici_tercihi']);
        } else {
            echo "Çerez bulunamadı.";
        }
        ?>
  • $_FILES: Dosya yükleme verileri. Kullanıcı tarafından form aracılığıyla sunucuya yüklenen dosyalar hakkındaki bilgileri içerir.
  • $_ENV: Ortam değişkenleri. Sunucunun ortamı tarafından ayarlanan değişkenlerdir. Genellikle güvenlik nedeniyle doğrudan kullanılmaz, bunun yerine `.env` dosyaları ve kütüphaneler tercih edilir.

10. Dosya Dahil Etme (Include/Require)
PHP'de başka bir dosyayı mevcut betiğe dahil etmek için kullanılır. Bu, kodun modülerliğini artırır, tekrarı önler ve bakımı kolaylaştırır (örneğin, başlık, alt bilgi veya veritabanı bağlantı dosyalarını dahil etmek için).

  • include: Dahil edilecek dosya bulunamazsa sadece bir uyarı (`E_WARNING`) verir ve betik çalışmaya devam eder. Daha az kritik dosyalar için uygundur.
  • require: Dahil edilecek dosya bulunamazsa ölümcül bir hata (`E_COMPILE_ERROR`) verir ve betiğin çalışmasını durdurur. Kritik dosyalar (örn. veritabanı bağlantısı) için kullanılmalıdır.
  • include_once: Bir dosyanın sadece bir kez dahil edilmesini sağlar. Eğer dosya daha önce dahil edilmişse, tekrar dahil edilmez. Fonksiyon tanımlarının veya sınıf tanımlarının birden çok kez dahil edilerek hata vermesini engeller.
  • require_once: Bir dosyanın sadece bir kez ve zorunlu olarak dahil edilmesini sağlar. `require` ile aynı davranışa sahiptir ancak yalnızca bir kez dahil edilmesini garantiler.

Kod:
<?php
    // varsayalım ki 'header.php' adında bir dosyamız var ve içinde:
    // <?php echo "<h1>Web Sitemizin Başlığı</h1>"; ?>
    // ve 'functions.php' içinde bir fonksiyon:
    // <?php function mesaj_goster($mesaj) { echo $mesaj; } ?>

    require_once 'functions.php'; // Fonksiyonların sadece bir kez yüklenmesini sağlar
    include 'header.php'; // Başlık içeriğini sayfaya dahil eder

    echo "<p>Ana içerik burası.</p>";
    mesaj_goster("Hoşgeldiniz!");

    // Olmayan bir dosya için include:
    // include 'olmayan_bir_dosya.php'; // Sadece uyarı verir, kod devam eder

    // Olmayan bir dosya için require:
    // require 'cok_kritik_dosya.php'; // Ölümcül hata verir, kod durur
?>

11. Temel Hata Yönetimi
PHP, hataları çeşitli seviyelerde bildirir (uyarılar, hatalar, ölümcül hatalar). Temel hata yönetimi için `die()` veya `exit()` kullanılabilir. Bunlar, bir hata durumunda betiğin çalışmasını durdurur ve isteğe bağlı olarak bir mesaj görüntüler. Daha gelişmiş hata yönetimi için `try-catch` blokları (istisna yönetimi) ve özel hata işleyicileri kullanılır.

Kod:
<?php
    // Basit hata yönetimi: die()
    $dosya_yolu = "olmayan_gercek_dosya.txt";

    if (!file_exists($dosya_yolu)) {
        die("Hata: Dosya bulunamadı - " . $dosya_yolu . ". Program durduruldu.");
    }

    // Gerçek bir uygulamada burada dosya okuma/yazma işlemleri devam ederdi
    echo "Dosya başarıyla bulundu ve işlendi.";

    echo "\n--------------------------\n";

    // PHP 5 ve sonrası için exception (istisna) yakalama (try-catch)
    // Bu, daha temiz ve yapılandırılmış bir hata yönetimi sağlar.
    function bolme($bolunen, $bolen) {
        if ($bolen == 0) {
            throw new Exception("Sıfıra bölme hatası! Bölüm tanımsızdır.");
        }
        return $bolunen / $bolen;
    }

    try {
        echo "10 / 2 = " . bolme(10, 2); // Çıktı: 5
        echo "\n";
        echo "10 / 0 = " . bolme(10, 0); // Hata fırlatılacak ve catch bloğuna düşecek
    } catch (Exception $e) {
        echo "[i]Hata Yakalandı:[/i] " . $e->getMessage();
        // Hata loglama veya kullanıcıya dostça bir mesaj gösterme burada yapılabilir
    } finally {
        echo "\nİşlem denemesi tamamlandı."; // Hata olsun ya da olmasın çalışır
    }

    echo "\nProgram bu noktaya kadar devam etti.";
?>

Sonuç ve Sonraki Adımlar
Bu rehber, PHP'nin temel sözdizimini ve ana yapılarını kapsayan geniş bir giriş sunmaktadır. Artık değişkenleri tanımlayabilir, veri tiplerini anlayabilir, operatörleri kullanabilir, kod akışını kontrol edebilir, fonksiyonlar oluşturabilir ve dizilerle çalışabilirsiniz. Bu bilgilerle basit PHP betikleri yazmaya başlayabilir ve dinamik web sayfaları oluşturmanın ilk adımlarını atabilirsiniz.

PHP öğrenme yolculuğunuzda bir sonraki adımlarınız şunlar olabilir:

  • Nesne Yönelimli Programlama (OOP) kavramları: Sınıflar, nesneler, miras alma, arayüzler ve soyut sınıflar.
  • Veritabanı (MySQLi, PDO) bağlantıları ve sorguları: Veri depolama ve alma işlemlerini öğrenmek.
  • Güvenlik uygulamaları: SQL Injection, XSS (Cross-Site Scripting) ve CSRF (Cross-Site Request Forgery) gibi yaygın web saldırılarına karşı korunma yöntemleri.
  • Form işleme ve doğrulama: Kullanıcıdan gelen verileri güvenli bir şekilde işlemek.
  • Popüler framework'ler: Laravel, Symfony, CodeIgniter gibi framework'ler, daha hızlı ve düzenli uygulama geliştirmeye yardımcı olur.
  • İçerik yönetim sistemleri (CMS): WordPress, Drupal, Joomla gibi sistemlerin temelini anlamak.
  • Hata ayıklama (Debugging): Xdebug gibi araçlarla kodunuzdaki hataları bulma ve giderme.

PHP'nin resmi dokümantasyonunu https://www.php.net/manual/tr/ adresinden detaylıca incelemek, bilginizi pekiştirmek ve yeni özellikler keşfetmek için harika bir kaynaktır. Unutmayın, en iyi öğrenme yöntemi pratik yapmaktır. Küçük projeler üzerinde çalışarak ve karşılaştığınız sorunlara çözüm arayarak PHP bilginizi hızla geliştirebilirsiniz. Bol şans!
 
shape1
shape2
shape3
shape4
shape5
shape6
Üst

Bu web sitenin performansı Hazal Host tarafından sağlanmaktadır.

YazilimForum.com.tr internet sitesi, 5651 sayılı Kanun’un 2. maddesinin 1. fıkrasının (m) bendi ve aynı Kanun’un 5. maddesi kapsamında Yer Sağlayıcı konumundadır. Sitede yer alan içerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır.

YazilimForum.com.tr, kullanıcılar tarafından paylaşılan içeriklerin doğruluğunu, güncelliğini veya hukuka uygunluğunu garanti etmez ve içeriklerin kontrolü veya araştırılması ile yükümlü değildir. Kullanıcılar, paylaştıkları içeriklerden tamamen kendileri sorumludur.

Hukuka aykırı içerikleri fark ettiğinizde lütfen bize bildirin: lydexcoding@gmail.com

Sitemiz, kullanıcıların paylaştığı içerik ve bilgileri 6698 sayılı KVKK kapsamında işlemektedir. Kullanıcılar, kişisel verileriyle ilgili haklarını KVKK Politikası sayfasından inceleyebilir.

Sitede yer alan reklamlar veya üçüncü taraf bağlantılar için YazilimForum.com.tr herhangi bir sorumluluk kabul etmez.

Sitemizi kullanarak Forum Kuralları’nı kabul etmiş sayılırsınız.

DMCA.com Protection Status Copyrighted.com Registered & Protected