PHP değişken çözümleme
Merhaba arkadaşlar, string veri türünde anlatmış olduğumuz çift tırnaklı dizgeler veya yorumlu metinlerde değişkenlerin php tarafından yorumlandığını anlatmıştım.
sözdizimi basit ve karmaşık olarak sınıflandırılabilir.
Basit Sözdizimi
Basit sözdizimi en çok kullanılanı ve elverişli olanıdır; bir değişken, bir dizi değeri veya bir nesne özelliğini bir dizge içinde en az çabayla kullanmayı sağlar.
<?php $elma = 'Elma'; echo "$elma'nın rengi kırmızı"; // çalışır; "'" değişken adında geçersizdir echo "$elmalar çok güzel"; // çalışmaz; 'lar' değişken isminde geçerlidir // ama değişken "$elmalar" değildir. echo "${elma}lar kırmızı"; // çalışır echo "{$elma}lar kırmızı"; // çalışır ?>
Karmaşık Sözdizimi
php de karmaşık sözdizimi adından belli olduğu gibi karmaşık ifadelerin kullanılmasını sağlar.
İfade basitçe dizge dışındaki gösterimiyle yazılıp { ve } arasına alınır. { öncelenemeyeceğinden bu sözdizimi sadece $ iminin { iminin hemen ardında yer aldığı durumlarda tanınır. {\$ kullanımı bir sayıl {$ alınmasıyla sonuçlanır.
<?php // Tüm hataları görelim error_reporting(E_ALL); $şahane = 'harika'; // Çalışmaz, çıktısı: Bu çok { harika} echo "Bu çok { $şahane}"; // Çalışır, çıktısı: Bu çok harika echo "Bu çok {$şahane}"; echo "Bu çok ${şahane}"; // Çalışır echo "Bu karenin bir kenarı {$square->width}00 santimetre uzunluktadır."; // Çalışır echo "Bu çalışır: {$arr[4][3]}"; // $foo[bar] bir dizge dışında neden yanlışsa bu da o yüzden yanlıştır. // Yani, bu yine de çalışır fakat PHP önce foo adında bir sabit // arayacağından çalışır; bununla birlikte E_NOTICE seviyesinde // bir hata oluşacaktır (tanımsız sabit). echo "Bu yanlış: {$arr[foo][3]}"; // Çalışır. Çok boyutlu dizileri dizgelerin içinde kullanılırken, // dizileri daima kaşlı ayraçlar arasına alın. echo "Bu çalışır: {$arr['foo'][3]}"; // Çalışır. echo "Bu çalışır: " . $arr['foo'][3]; echo "Bu da çalışır: {$obj->values[3]->name}"; echo "$name adlı değişkenin değeri: {${$name}}"; echo "Adı getName() işlevinin dönüş değeri olan değişkenin değeri: {${getName()}}"; echo "Adı \$object->getName() yönteminin dönüş değeri olan değişkenin değeri: {${$object->getName()}}"; ?>
kaynak http://www.php.net/manual/tr/language.types.string.php