PHP’yi Anlamak: Değişkenler Değer
veya Referans
ile Mi Geçirilir?
PHP programlama dünyasına dalarken, sıkça sorulan bir soru ortaya çıkar: PHP değişkenleri değer
ile mi yoksa referans
ile mi geçirilir? Bu iki değişken veri işleme yönteminin ayırt edilmesi, geliştiriciler için kritik öneme sahiptir; çünkü bu, fonksiyonların nasıl çalıştığını ve değişkenlerin nasıl manipüle edilebileceğini etkiler.
PHP’de Değişken Geçirme Temelleri
PHP’de, bir fonksiyona argüman geçirdiğinizde, bunlar iki şekilde geçirilebilir:
-
Değer ile
- Değişkenin değerinin bir kopyası fonksiyona geçilir.
- Fonksiyon içerisinde argümanda yapılan değişiklikler, orijinal değişkeni etkilemez.
-
Referans ile
- Orijinal değişkene bir referans fonksiyona geçilir.
- Bu nedenle, fonksiyon içerisinde yapılan her türlü değişiklik doğrudan orijinal değişkeni etkileyecektir.
PHP’nin Varsayılan Davranışı
PHP Dokümantasyonuna göre, PHP’nin varsayılan davranışı değişkenleri değer ile geçirmektir. Bu, fonksiyon içerisinde değişiklik yaparsanız, değişikliklerin fonksiyonun kapsamı dışındaki değişken üzerinde yansımayacağı anlamına gelir.
Değer ile Geçirme Örneği
function changeValue($var) {
$var = "Yeni Değer";
}
$value = "Orijinal Değer";
changeValue($value);
echo $value; // Çıktı: Orijinal Değer
Yukarıdaki örnekte, changeValue
fonksiyonu $value
değerini değiştirmemekte, bu da değer ile geçirme davranışını göstermektedir.
Değişkenleri Referans ile Geçirme
Eğer bir fonksiyonun argümanlarını değiştirmesini istiyorsanız, bunları referans ile geçirmeniz gerekecek. Bu, fonksiyon tanımında argümanın önüne bir & işareti (&
) eklenerek sağlanır.
Referans ile Geçirme Örneği
İşte PHP’de bir değişkeni referans ile geçirmenin nasıl olduğunu gösteren pratik bir örnek:
function add_some_extra(&$string) {
$string .= ' ve ekstra bir şey.';
}
$str = 'Bu bir dizedir,';
add_some_extra($str);
echo $str; // Çıktı: Bu bir dizedir, ve ekstra bir şey.
Örneğin Analizi:
- Fonksiyon Tanımı:
&$string
ifadesi,$string
değişkeninin referans ile geçirildiğini belirtir. - Değişiklik: Fonksiyon içerisinde, başka bir dize ekleyerek dize değiştirilir.
- Sonuç: Orijinal dize
$str
bu değişikliği yansıtır ve fonksiyon dışında da değiştirildiği gösterilmiş olur.
Sonuç
PHP değişkenlerinin değer
veya referans
ile geçirilip geçirilmediğini anlamak, etkili programlama için esastır. Varsayılan olarak, PHP değer ile geçiş yaparak orijinal verinin bütünlüğünü korur. Ancak, değişiklikler gerektiğinde, değişkenleri referans ile geçirmek, orijinal değişkeni doğrudan değiştirme esnekliği sağlar.
Önemli Noktalar
- Varsayılan Yöntem: PHP, argümanları değer ile geçirir; bu da demektir ki, fonksiyonlar içindeki değişiklikler orijinal değişkeni etkilemez.
- Değiştirmek İçin: Fonksiyon tanımında değişken adının önüne bir ampersand
&
ekleyerek referans ile geçme yöntemini kullanın.
İster yeni başlayan olun, ister PHP becerilerinizi geliştirmek istiyor olun, değişken geçişlerini nasıl manipüle edeceğinizi bilmek kodlama yeteneklerinizi büyük ölçüde artırabilir. İyi kodlamalar!