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