Bu sayfadaki yazılar
Sayfanın metni
Sayfa 75
<html> <head> <title>Sayfa Basligi</title> </hnead> <body> <?php print "Merhaba Dünya"; </ntml>
Son olarak "printf" komutunu ele alacak olursak "printf", "echo" ve "print"ten epey farklı bir komuttur. C kütüphanesindeki "printf" ile hemen hemen aynı şekilde çalışır. PHP'de ileriki konularda göreceğimiz şekilde değişkenler belirli bir tipe bağımlı olarak tanımlanmazlar ve dinamik olarak tip değiştirebilirler. Ancak printf komutu ile C'deki gibi değişkenleri formatlayabiliriz. "Merhaba Dünya" örneğine geri dönecek olursak printf de diğerlerinden çok farklı bir kullanıma sahip değildir.
printf
<html> <head> <title>Sayfa Basligi</title> </hnead> <body> <?php printf ("Merhaba Dünya"); </ntml>
Bunların haricinde ekrana çıktı veren vprintf(), exit() gibi başka komutlar da yer almaktadır. Ancak "Merhaba Dünya" örneği için şimdilik bu kadarı yeterli.
Değişkenler
PHP'de değişken kullanımı diğer birçok dile göre çok daha basittir. Ancak PHP'nin değişkenleri nasıl yorumladığı iyi anlaşılmadığı zaman bazı durumlarda programcı problemlerle karşılaşabilir. Bu sebeple PHP'de yer alan değişken tipleri, değişkenlerin yapısı, değişken tip dönüşümleri bilinmesi gereken önemli konulardır.
PHP'de desteklenen değişken tipleri şunlardır:
1. Boolean: Doğru/Yanlış
2. Integer: Tam Sayı 3. Float: Ondalıklı Sayı 4. String: Metin 5. Array: Dizi 6. Object: Nesne 7. Resource: Kaynak 8. NULL: Boş
PHP'de bu değişken tipleri olduğu halde genellikle "değişken tipi" ile ilgili çok fazla bir işlem yapılmaz. Çünkü PHP'de değişken tanımlama zorunluluğu yoktur. Bir değişken, eşitlendiği değere göre otomatik olarak tip belirleyebilir ve daha sonra yine otomatik olarak tip dönüşümü yapabilir. Bu özellik PHP'yi programcılar için çok daha kolay kullanımlı bir dil haline getirmiştir. Zamanla çeşitli örneklerle bunları göreceğiz.
Şimdi PHP değişkenlerinin bazı özelliklerini tanıyalım. PHP değişkenleri başlarında dolar işaretiyle ($) kullanılırlar.
Büyük küçük harf hassasiyetine sahiplerdir, yani $a ve $A iki farklı değişken olarak algılanır.
Değişken isimleri a'dan z'ye bir harf ya da alt çizgi (_) karakteri ile başlayabilir. Rakam ya da başka bir sembol ile başlayamaz.
$this özel bir değişkendir. Bir değere eşitlenemez.
Değişkenlerin başında kullanılan $ sembolünün yardımıyla PHP'de değişkenin değerinden başka bir değişken oluşturabilme özelliği vardır. Buna PHP'de "değişken değişkenler" (variable variables) ismi konulmuştur. $ sembolleri iç içe istenilen sayıda kullanılabilmektedir. Örnek:
değişken değişkenler örnek 1
<?php $a — "abc"; $$a — "123"; echo $abe; ?>
Bu program ekrana "123" yazacaktır. Dikkat ederseniz ekrana yazdırılan değişken $abc olduğu halde programın içinde "abc" bir değişken olarak tanımlanmamış durumda. Yani $abc = "123"; şeklinde bir atama yapılmamış. Fakat $a değişkenine string olarak "abc" değeri yüklendikten sonra $$a "123"'e eşitlenmiş. $$a'yı $($a) şeklinde düşünecek olursak $a'nın değeri "abc" olduğu için $$a $abc anlamına gelmektedir. Bu daha da iç içe ilerletilebilir. Örnek:
değişken değişkenler örnek 2
<?php $a — "abe"; $$a — "def"; $$$a - "ghi"; $$$$a - "123"; echo $ghi; ?>
Satır sırasıyla $a "abc"'ye, $abc "def"'ye, $def "ghi"ye ve $ghi ise "123"e eşitlenmiş oldu. Burada $$$$a yerine $$$abc, $$def ya da $ghi kullanabilirdik. Tek bir $ kalana kadar sağdan sola doğru değişkenlerin değerlerini yerine koyarak ilerlediğimizde bu sonuca varıyoruz.
PHP'de otomatik olarak yapılan değişken dönüşümlerine bazı örnekler verelim.
değişken dönüşümleri
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 74
PHP oldukça hızlı bir dildir. Dolayısıyla her tür kıyaslamada JavaScript/VBScript'e göre daha iyi sonuç verecektir. Ayrıca PHP yalnızca text output vermekle ilgilenir. İstemci tarafında çalışan diğer scripting dilleri browser'a bağımlı başka birçok nesneyle de ilgilenmek zorundadırlar. Fakat burada gelmeye çalıştığımız asıl nokta bu değil. Test ortamında kendi makineniz üzerinde çalışıyor olabilirsiniz. Ancak yaptığınız PHP programı/web sitesi yayına girdiği andan itibaren sunucu ve istemci aynı makine olmaktan çıkacaktır. Bu durumda istemcilerin makinelerinin değişken performanslarının sitenizin çalışma hızına etkisini minimuma indirmek için yukarıdaki gibi örneklerde PHP kullanmak çok daha mantıklı bir yöntem olacaktır. Zamanla PHP kullanmamızı mecburi kılacak veritabanıyla iletişim gibi konulara da geleceğiz. Ancak PHP kullanmamız zorunlu olmayan birçok durumda dahi PHP doğru seçim olacaktır.
Zaman hangi dili kullanmamız lazım?
Bu sorunun cevabını verebilmek için PHP'nin bize tam olarak ne sağladığını anlamak lazım. PHP, kendisine ait scriptleri sunucu tarafında çalıştırıp, bunlardan oluşturduğu sonuçlarla birlikte bir HTML çıktı üreterek istemciye yollar. Yani bir PHP sayfası çalıştıktan sonra browser'da "kaynağı görüntüle" (view source) seçeneği seçildiği zaman PHP kodlarını değil, bu kodların ürettiği sonuçlardan oluşmuş HTML kodlarını görürüz.
Bu iki anlama gelir.
PHP dili kaynak kodları istemciden bağlanan kişilerden korumak açısından güvenlidir. Sunucuya erişim yetkisi olmayan kişiler tarafından görüntülenmesi imkansızdır. (Hatta Zend firmasının uygulamaları ile sunucuya erişim yetkisi olan kişilerden de gizlenebilir). İstemci tarafında çalışan scripting dillerinin kodları ise açıktır, standart yöntemlerle gizlenemez.
PHP bütün işi sunucu tarafında yapar ve istemciye ulaştıktan sonra PHP'nin artık hiçbir fonksiyonu kalmamıştır. Bu yüzden PHP ile dinamik bir sayfa oluşturmak, browser'da olan olayları PHP'ye yeni bir sayfa yükletmeden göndermek, sonuçlarını almak mümkün değildir. AJAX ve benzeri yöntemler ile sayfa güncellenmeden PHP'den veri çekilebilir ancak yine istemci tarafında çalışan dillerin yardımına ihtiyaç vardır. Kısacası bu tür durumlarda JavaScript, VBScript gibi dillerin faydasını görmekteyiz. Bu diller browser'la ve HTML nesneleriyle doğrudan etkileşim içersindedirler. Yeni bir sayfa yükletmeden o sayfa içersindeki her şeyi kontrol edebilir, kullanıcı ile interaktif bir şekilde çalışabilirler.
Yani amacınız bir linke ya da butona tıklanınca o sayfa içersinde bir mesaj çıkartmak, bir resmin üzerine mouse ile gidince resmin değişmesi gibi konular ise PHP yanlış bir seçimdir. Ancak sayfa oluşturulurken veritabanından okunan değerlerin ekrana yazdırılması, HTML formlarından gönderilen verilerin veritabanına kaydedilmesi ya da sayfanın sabit kısımlarına (örneğin menü) her dosyada yer vermek ve güncellerken tüm dosyaları güncellemek yerine tek bir dosyadan yükletmek gibi amaçlarda PHP doğru seçim olacaktır.
Merhaba Dünya Örneği
Şekil 4.
Birçok dilde ilk öğrenilen şey ekrana nasıl yazı yazdırıldığıdır. Elbette ki PHP'de de bu çok önemli bir konudur ve şimdi bu konuyla ilgili detayları göreceğiz.
PHP'de bunu yapmanın birden fazla yolu mevcuttur. İlk olarak en temel yazı yazdırma örneğini görelim.
echo
<html> <head> <title>Sayfa Basligi</title> </head> <body> <?php echo "Merhaba Dünya"; ?> </body> </html>
"echo" komutu yazı yazdırmak için PHP'deki en genel ve en hızlı yöntemdir. Bu komut doğrudan PHP'nin çekirdeğinde yer alan bir komuttur. Hiçbir değer döndürmez. Bu fonksiyonu çağırırken parantez kullanmak gerekmez. Parantez kullanılmadığı durumda virgüllerle ayrılarak birden fazla parametre alabilir (bu parametrelerin değerlerini yan yana yazar).
Diğer alternatifler ise Basic'ten alışık olduğumuz "print" ve C'den alışık olduğumuz "printf" komutlarıdır. Bunlardan "print", "echo" ile büyük benzerlikler taşır. Hız olarak hemen hemen "echo" ile aynıdır. "print"in fazladan bir sonuç döndürdüğü düşünülecek olursa tespit edilmesi güç derecede "echo"dan daha yavaştır diyebiliriz. Ayrıca "echo" gibi birden fazla parametre alma özelliğine sahip değildir.