Bir programlama dilinden beklentileriniz nedir? Size, işlemlerinizi yapabilmeniz için gereken esnekliği sağlayabilmesidir en başta. Yetenekli olmasıdır.
Bu yazımızda da PHP’nin (muhtemelen) az bilinen 10 özelliğine beraberce göz atacağız.
#1: Veri türleri arasında çevrim
PHP’de değişken oluşturduğunuzda, oluşturduğunuz bu değişkenin veri türünü belirtmenize gerek yoktur, $x dersiniz ve değişkeninizi yaratmış olursunuz.
Ancak uygulamanızın ilerleyen safhalarında $x değişkeninin taşıdığı değerin “integer” olduğundan emin olmanız gerekirse ne yaparsınız? Şu şekilde rahatlıkla $x değerini integer yapabilirsiniz:
$x = 35.75;
echo (int) $x; //35
#2: Değişken değişkenleri
Bir değişkenin isminin değişken olması gerekirse ne yapabilirsiniz? Tabii ki değişkenin ismini değişken olarak tanımlarsınız!
$banka = “ziraatbank”;
$banka = “bir kamu bankası”;
echo $ziraatbank; //bir kamu bankası
Tabi bu özelliği kullanırken güvenlik açığı bırakmamak konusunda iki kez düşünmemiz gerekir!
#3: Değişken isimlerini sayılardan yapmak
PHP’de (ve diğer pek çok dilde) değişken isimlerini sayılardan oluşturamazsınız, $123 gibi. $sayi123 yapabilirsiniz ama $123sayi da yapamazsınız.
$123 yazmak konusunda bir inadınız varsa, değişken değişkenlerini kullanarak bir şeyler yapabiliriz:
$isim = “123”;
$isim = “icerik...”;
echo ${“123”}; // icerik...
#4: Fonksiyonları değişkenlere göre çağırmak
Bu belki biraz kafa karıştırıcı olabilir, ama önce şu örneği bir inceleyelim:
function deneme()
{
echo “bu bir denemedir...”;
}
$secim = “deneme”;
$secim(); //bu bir denemedir...
Normalde secim() isimli bir fonksiyonumuz yok, olsa bile $secim() şeklinde çağrılmaz. Ama burada çağrılacak fonksiyonun ismi, $secim değişkeninde tutulmakta ve onun taşıdığı değere göre ilgili fonksiyon çağrılmakta.
Bu özelliği de kullanırken güvenlik konularını yine iki kez düşünmemiz gerekir.
#5: Sabitler
Değişkenler olduğu gibi sabitler de bulunmaktadır ve kullanımları da yine çok basittir:
define(“YAZAR”, “isa engiz”);
echo YAZAR; //isa engiz
Sabitlerin avantajı, uygulamanın ilerleyen bölümlerinde de değiştirilemezler ve kullanırken $ işareti gerektirmezler. Büyük harfler yazılmalarına gerek yoktur ancak sabit olduklarını belrtmek için büyük harf kullanılır.
#6: İkinin katları ile çarpmak ve bölmek
Eğer değişkeninizi ikinin katları ile çarpmak veya bölmek istiyorsanız, bunun için (bana göre) ilginç bir yol bulunmakta:
$sayi = 5;
echo $sayi << 3; // 5*2^3
echo $sayi << 6; // 5*2^6
echo $sayi >> 1; // 5/2^1
echo $sayi >> 7; // 5/2^7
#7: Değişken değerlerini referans ile atamak ve değiştirmek
Önce aşağıdaki örneği inceleyelim:
$x = 10;
$y = &$x;
$y = 20;
echo $x; //20
Yaptığımız şey aslında $y değişkeninin içeriğine, referans ile $x değişkeninin adresini atadık ve biz $y değişkenine bir değer vermek istediğimizde bu değer $x değişkenine atanmış oldu.
#8: XOR, yani Exclusive OR
Bir if deyimi içerisinde “or” kullanırken düşünülen mantık: “bu iki değerden biri doğruysa… istenileni yap…” İkisi birden doğruysa yine istenilen işlemi yapar. XOR’un kullanımı işte burada devreye giriyor, “iki değerden yalnızca biri doğruysa… istenileni yap…” Kullanım şekli şuna benzer olacak:
if ($a == 10 XOR $b == 10)
{
...
...
}
$a veya $b den biri 10 olduğunda işlem gerçekleşecek, ama ikisi birden 10 olursa if deyiminin içerisine girmeyecek…
#9: Pratik if-else kullanımı
İf – Else kod blokları uzun olabilir, yazmak zor gelebilir, o zaman şöyle bir özellik kullanabilirsiniz:
$x = 10;
echo $x == 10 ? “doğru”: “yanlış”;
//yani...
if ($x == 10)
{
echo “doğru”;
}
else
{
echo “yanlış”;
}
okunabilirlik açısından normal yazım şekli daha iyi gözüküyor ancak ilki kesinlikle daha pratik.
#10: Fonksiyonlara referans ile değer göndermek
Genelde fonksiyonlar size bir değer geri döndürürler ve kendisine gönderdiğiniz değişkenlere “zarar vermezler”, yani onların değerleri değiştirmezler.
Ama biz bazen değişkenin değerinin değiştirilmesini isteyebiliriz, bu durumda yine değişkenin değerini referans ile göndermeliyiz:
function sayiAyarla(&$deger)
{
$deger = $deger / 10;
}
$sayi = 1000;
sayiAyarla($sayi);
echo $sayi // 100
Sonuç
Görüldüğü üzere PHP’nin pek sık gündeme gelmeyen özellikleri bulunmakta. Bu özellikleri kullanıp kullanmamak tamamen size kalmış, aynen dizi kullanıp kullanmamak gibi… Dizileri kullanmamızın sebebi bize pratiklik sağlamasıdır, bu özellikler de aynı şekilde yerinde kullanıldığında daha “etkili” kod yazmamızı sağlayacaktır.