Menu

PHP Nedir? Ne İşe Yarar ve Nasıl Çalışır

PHP sunucu tarafında çalışan bir betik dilidir: PHP dosyası web sunucusunda çalışır ve oluşturduğu HTML'i tarayıcıya gönderir. WordPress, Laravel ve web'in büyük bir kısmı PHP ile çalışır; komut satırından betik çalıştırmak için de kullanılır.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

PHP, web sayfaları oluşturmak için kullanılan, sunucu tarafında çalışan bir betik dilidir. Bir .php dosyası web sunucusunda çalışır, HTML yazdırır (örneğin echo "<h1>Hello</h1>"; ile) ve sunucu bu HTML'i ziyaretçinin tarayıcısına gönderir. Tarayıcı PHP kodunu hiçbir zaman görmez, yalnızca sonucunu görür.

Run'a basın: PHP aşağıdaki sayfayı oluşturur ve Page sekmesi onu bir tarayıcının göstereceği şekilde gösterir.

Output sekmesine geçtiğinizde PHP'nin yazdırdığı düz HTML'i görürsünüz. Bu metin, bir tarayıcının alacağı içeriğin ta kendisidir. Bir fiyatı değiştirin ya da yeni bir ürün ekleyip tekrar çalıştırın.

PHP ne işe yarar

PHP web için yapıldı ve hâlâ en çok orada çalışıyor:

  • Web siteleri ve içerik yönetim sistemleri. WordPress, Drupal ve Joomla PHP ile yazılmıştır; bunların üzerine kurulan her site de öyle.
  • Web uygulamaları. Laravel ve Symfony gibi framework'ler e-ticaret siteleri, paneller, SaaS ürünleri ve şirket içi araçlar için kullanılır.
  • API'ler. Bir PHP betiği HTML yerine JSON yazdırabilir; birçok mobil uygulama ve JavaScript frontend'i verisini bu şekilde alır.
  • Komut satırı betikleri. Cron işleri, veri aktarımları, rapor oluşturucular ve dağıtım araçları php script.php ile, hiçbir web sunucusu olmadan çalışır.

Bir PHP isteği nasıl HTML'e dönüşür

Biri https://example.com/menu.php adresini açtığında şunlar olur:

  1. Tarayıcı sunucuya bir HTTP isteği gönderir.
  2. Web sunucusu (Apache, PHP-FPM ile Nginx ya da PHP'nin yerleşik sunucusu) .php uzantısını görür ve dosyayı PHP'ye verir.
  3. PHP dosyayı baştan sona çalıştırır. <?php ... ?> etiketlerinin dışındaki metin olduğu gibi çıktıya kopyalanır; etiketlerin içindeki kod çalışır ve echo ile başka metin yazdırabilir.
  4. PHP'nin yazdırdığı her şey yanıtın gövdesi olur ve tarayıcı onu görüntüler.
  5. PHP her şeyi unutur. Bir sonraki istek betiği sıfırdan çalıştırır.

PHP uygulamalarının oturum ve veritabanı kullanmasının nedeni 5. adımdır: bir değişkendeki hiçbir şey iki istek arasında hayatta kalmaz. Aşağıdaki form bu döngüyü gösterir. Çalıştırın, forma bir isim yazın ve Send'e basın: aynı betik bu kez $_POST dolu olarak yeniden çalışır.

htmlspecialchars, < gibi karakterleri &lt; hâline getirir; böylece <b>Ada</b> gibi bir isim işaretlemeye dönüşmek yerine metin olarak gösterilir. Ziyaretçiden gelen her değer bu şekilde yazdırılmalıdır; ayrıntılar htmlspecialchars sayfasında.

PHP HTML ile karışır

Bir PHP dosyası tamamen koddan oluşabilir ya da içinde PHP adacıkları olan bir HTML sayfası olabilir. İşin neredeyse tamamını üç etiket yapar:

EtiketNe yapar
<?php ... ?>İçindeki kodu çalıştırır
<?= $value ?><?php echo $value; ?> ifadesinin kısaltması
Dosyanın sonundaki ?>İsteğe bağlı; yalnızca PHP içeren dosyalarda yazmayın

Diğer selamlamayı görmek için $hour değerini 9 yapıp tekrar çalıştırın.

PHP kodu neye benzer

Değişkenler $ ile başlar, ifadeler ; ile biter ve çift tırnaklı stringler değişken içerebilir. Diziler hem liste hem de anahtar/değer eşlemesi olarak çalışır.

Betik hiç HTML etiketi yazdırmadığı için buradaki çıktı düz metindir. Terminalden çalıştıracağınız kod da tam olarak budur.

Modern PHP (PHP 8)

PHP 8.0 (2020) match ifadelerini, adlandırılmış argümanları, union türleri, str_contains() fonksiyonunu ve bir JIT derleyiciyi ekledi; PHP 8.1 ise enum'ları ve readonly özellikleri getirdi. PHP 8.3 için yazılmış kod şöyle görünür:

PHP ne demek

PHP, "PHP: Hypertext Preprocessor" ifadesinin kısaltmasıdır. Ad kendine gönderme yapar: ilk P, PHP'nin kendisini temsil eder. Rasmus Lerdorf ilk sürümü 1995'te kendi ana sayfası için yazdığı bir betik seti olan "Personal Home Page Tools" adıyla yayınladı; bugünkü ad 1998'de PHP 3 ile geldi. "Hypertext preprocessor" (hipermetin ön işlemcisi) yaptığı işi iyi anlatır: PHP, hipermetin (HTML) gönderilmeden önce dosyayı işler.

Sık yapılan ilk hata: .php dosyasını tarayıcıda açmak

index.php dosyasına çift tıklamak onu yerel bir dosya olarak açar; tarayıcı ya ham PHP kodunu gösterir ya da dosyayı indirmeyi önerir. Hiçbir şey çalışmaz, çünkü karşı tarafta PHP yoktur. Bir .php dosyasının, onu PHP'ye ileten bir web sunucusu tarafından sunulması gerekir. Kendi bilgisayarınızda en kısa yol PHP'nin yerleşik sunucusudur:

php -S localhost:8000

Ardından http://localhost:8000/index.php adresini açın. PHP çalıştırma sayfası bunu ve betikleri terminalden çalıştırmayı anlatır; PHP kurulumu ise önce PHP'yi bilgisayarınıza kurar.

Sıkça Sorulan Sorular

PHP'nin açılımı nedir?

PHP, kendine gönderme yapan bir kısaltma olan "PHP: Hypertext Preprocessor" anlamına gelir. 1995'teki ilk adı "Personal Home Page Tools" idi; Rasmus Lerdorf'un kendi web sitesi için yazdığı betiklerden geliyordu.

PHP frontend mi backend dili mi?

Backend. PHP sunucuda çalışır ve tarayıcı yalnızca betiğin yazdırdığı HTML'i (veya JSON'u) alır. Tarayıcı PHP kodunun kendisini hiçbir zaman görmez.

PHP en çok ne için kullanılır?

Sunucuda web sayfaları ve web uygulamaları oluşturmak için: içerik siteleri, e-ticaret siteleri, yönetim panelleri ve API'ler. WordPress, Drupal, Magento, Laravel ve Symfony'nin hepsi PHP ile yazılmıştır. Cron işleri ve veri aktarımları gibi komut satırı betiklerini de çalıştırır.

PHP 2026'da hâlâ kullanılıyor mu?

Evet. W3Techs'e göre sunucu tarafı dilini tespit edebildiği web sitelerinin yaklaşık dörtte üçünde PHP kullanılıyor; bunun büyük nedeni WordPress. Dil aktif olarak geliştiriliyor: PHP 8.0 match, adlandırılmış argümanlar ve bir JIT derleyici ekledi, PHP 8.1 ise enum'ları ve readonly özellikleri getirdi.

PHP öğrenmesi kolay mı?

Web geliştirme için ilk dil olarak en kolaylardan biridir: <?php echo "Hello"; içeren bir dosya zaten çalışan bir sayfadır ve her paylaşımlı hosting onu çalıştırır. Zor olan kısım güvenli alışkanlıkları erkenden edinmektir: çıktıyı htmlspecialchars ile kaçırmak ve SQL için hazırlanmış ifadeler (prepared statements) kullanmak gibi.

Coddy programlama dilleri çizimi

Coddy ile kodlamayı öğren

BAŞLA